果斷通不過這**的資料啊,居然還可以往回走
1
30 31 95
s..............................
..x............................
...x...........................
....x..........................
.....x.........................
......x........................
.......x.......................
........x......................
.........x.....................
..........x....................
...........x...................
............x..................
.............x.................
..............x................
...............x...............
................x..............
.................x.............
..................x............
...................x...........
....................x..........
.....................x.........
......................x........
.......................x.......
........................x......
.........................x.....
..........................x....
...........................x...
............................x..
.............................xe
..............................d
wrong code:
#include #include "stdio.h"
#include "queue.h"
#include "memory.h"
char map[105][105]; //定義圖的大小
int vit[105][105]; //圖結點訪問的判斷
int fangxiang[4][2]=; //四個方向
struct point
;queue q; //定義佇列
int bgx,bgy;
int flag,canseesum; //能夠看到的人數和flag標記是否能看到人
int n,m,t; //行,列,限制步數
int cango(int x,int y) //判斷是否是有效可走點
return 0;
}int cansee(int x,int y) //在當前位置上是否能看到人 ps:核心語句
else if(map[x][i]=='d'||map[x][i]=='e') //能看到大明、二明中的乙個
}for(i=y+1;i<=m;i++) //右看
else if(map[x][i]=='d'||map[x][i]=='e') //能看到大明、二明中的乙個
}for(j=x+1;j<=n;j++) //下看 //列不變行變
else if(map[j][y]=='d'||map[j][y]=='e') //能看到大明、二明中的乙個
}for(j=x-1;j>=1;j--) //上看
else if(map[j][y]=='d'||map[j][y]=='e') //能看到大明、二明中的乙個
}return sum;
} //------------------------------------
int bfs(void) //廣度優先搜尋開始
if(now.step>t) //剪枝
int newx,newy;
int i;
for(i=0;i<4;i++)
} }
}using namespace std;
int main(int argc, char *ar**)
scanf("%d%d%d",&n,&m,&t); //行,列,次數
int i2,j2;
for(i2=1;i2<=n;i2++)}}
//------------------------------
point start;
start.x=bgx;
start.y=bgy;
start.step=0;
vit[bgx][bgy]=1;
start.seesum=cansee(bgx,bgy);
q.push(start); //開始結點放入佇列
flag=0;
int ministep=-1;
//--------------------------------
ministep=bfs(); //開始廣搜
if(flag==0)
else
} return 0;
}
HDU 4528 小明系列故事 捉迷藏
小明的媽媽生了三個孩子,老大叫大明,老二叫二明,老三.老三自然就叫小明了。一天,小明的媽媽帶小明兄弟三人去公園玩耍,公園裡面樹木很多,有很多地方可以藏身,於是他們決定玩捉迷藏。經過幾輪的猜拳後,第一輪是小明來找其他兩個人,遊戲規則很簡單 只要小明可以在規定的時間內找到他們就算小明獲勝,並且被發現的兩...
hdu 4528小明系列故事 捉迷藏 (bfs)
題意 就是三個傻明玩捉迷藏,小明負責找大的和二的,直線可以看見就算找到,人擋著人都不行!問小明可不可以在規定時間完成任務。思路 就是正常的bfs,只不過有些細節處理需要注意,比如能否看到大明二明,保證兩點中間都是 還有就是去重,這裡需要注意,小明是可以走回頭路的,比如大明在左上,二明在右上,小明就要...
HDU4528 小明系列故事 捉迷藏 BFS
小明的媽媽生了三個孩子,老大叫大明,老二叫二明,老三 老三自然就叫小明了。一天,小明的媽媽帶小明兄弟三人去公園玩耍,公園裡面樹木很多,有很多地方可以藏身,於是他們決定玩捉迷藏。經過幾輪的猜拳後,第一輪是小明來找其他兩個人,遊戲規則很簡單 只要小明可以在規定的時間內找到他們就算小明獲勝,並且被發現的兩...