作者alvinyuan ()
看板b99902HW
标题[计程] city road
时间Mon Oct 18 21:57:49 2010
不好意思来问一下 我已经改到觉得没地方可以改了呀
不知道为什麽才2分
我分别针对是不是边界来检查
边界又分好几种case
再针对邻居总和是4 3 2 1的情况做加总
不知道是我眼残还是真的有想错了 可以拜托帮我看一下吗...
void intersection(int map[100][100], int result[4]);
void intersection(int map[100][100], int result[4])
{
int i, j;
for(i = 0; i < 4; i++)
result[i] = 0;
for(i = 1; i < 99; i++){
for(j = 1; j < 99; j++){
if(map[i][j] == 1 && (map[i - 1][j] + map[i + 1][j] + map[i][j -
1] + map[i][j + 1]) == 4)
result[0]++;
if(map[i][j] == 1 && (map[i - 1][j] + map[i + 1][j] + map[i][j -
1] + map[i][j + 1]) == 3)
result[1]++;
if(map[i][j] == 1 && (map[i - 1][j] + map[i + 1][j] + map[i][j -
1] + map[i][j + 1]) == 2)
result[2]++;
if(map[i][j] == 1 && (map[i - 1][j] + map[i + 1][j] + map[i][j -
1] + map[i][j + 1]) == 1)
result[3]++;
}
}
for(j = 1; j < 99; j++){
if(map[0][j] == 1 && (map[1][j] + map[0][j - 1] + map[0][j + 1]) ==
3)
result[1]++;
if(map[0][j] == 1 && (map[1][j] + map[0][j - 1] + map[0][j + 1]) ==
2)
result[2]++;
if(map[0][j] == 1 && (map[1][j] + map[0][j - 1] + map[0][j + 1]) ==
1)
result[3]++;
}
for(j = 1; j < 99; j++){
if(map[99][j] == 1 && (map[98][j] + map[99][j - 1] + map[99][j + 1])
== 3)
result[1]++;
if(map[99][j] == 1 && (map[98][j] + map[99][j - 1] + map[99][j + 1])
== 2)
result[2]++;
if(map[99][j] == 1 && (map[98][j] + map[99][j - 1] + map[99][j + 1])
== 1)
result[3]++;
}
for(i = 1; i < 99; i++){
if(map[i][0] == 1 && (map[i][1] + map[i + 1][0] + map[i - 1][0]) ==
3)
result[1]++;
if(map[i][0] == 1 && (map[i][1] + map[i + 1][0] + map[i - 1][0]) ==
2)
result[2]++;
if(map[i][0] == 1 && (map[i][1] + map[i + 1][0] + map[i - 1][0]) ==
1)
result[3]++;
}
for(i = 1; i < 99; i++){
if(map[i][99] == 1 && (map[i][98] + map[i + 1][99] + map[i - 1][99])
== 3)
result[1]++;
if(map[i][99] == 1 && (map[i][98] + map[i + 1][99] + map[i - 1][99])
== 2)
result[2]++;
if(map[i][99] == 1 && (map[i][98] + map[i + 1][99] + map[i - 1][99])
== 1)
result[3]++;
}
if(map[0][0] == 1 && (map[0][1] + map[1][0]) == 2)
result[2]++;
if(map[0][0] == 1 && (map[0][1] + map[1][0]) == 1)
result[3]++;
if(map[0][99] == 1 && (map[0][98] + map[1][99]) == 2)
result[2]++;
if(map[0][99] == 1 && (map[0][98] + map[1][99]) == 1)
result[3]++;
if(map[99][0] == 1 && (map[98][0] + map[99][1]) == 2)
result[2]++;
if(map[99][0] == 1 && (map[98][0] + map[99][1]) == 1)
result[3]++;
if(map[99][99] == 1 && (map[98][99] + map[99][98]) == 2)
result[2]++;
if(map[99][99] == 1 && (map[98][99] + map[99][98]) == 1)
result[3]++;
return;
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.7.59
1F:推 m80126colin:四个邻居如果是-3 4 2 -1呢?? 10/18 22:04
2F:→ alvinyuan:咦 根据题目的定义 邻居不是只有可能出现0和1吗 10/18 22:12
3F:→ alvinyuan:对吼 好像没有说非1就是0= = 10/18 22:14
4F:推 math120908:话说题目没说 可是其实应该非0则1的样子XD 10/18 23:00
5F:→ alvinyuan:是唷 刚刚还在用力想不限定1和0该怎麽写 10/18 23:02
6F:→ alvinyuan:那这样我是错在哪呀= = 10/18 23:02
7F:推 math120908:你对於result[2]的状况都有点错 因为像 10/18 23:04
8F:推 math120908: 0 10/18 23:04
9F:→ math120908:111 10/18 23:04
10F:→ math120908: 0 这种状况会不是result[2]可是你会算到~ 10/18 23:05
11F:→ alvinyuan:呼 10分了 真的很感谢唷 10/18 23:54