vis是乙個三維陣列
vis[x][y][0]代表第一次搜到原圖座標(x,y)的x"虛"座標,vis[x][y][1]代表第一次搜到原圖座標(x,y)的y"虛"座標,vis[x][y][2]代表是否搜過
這樣既可以判斷什麼時候進入了無限走狀態,又可以判斷是否死迴圈了(往前走一步又退回一步)
#include#include#include#define n 1505
using namespace std;
int n,m,sx,sy;
int map[n][n],vis[n][n][3];
int dirx[5]=;
int diry[5]=;
bool flag;
void dfs(int x,int y,int posx,int posy)
if(vis[posx][posy][2]&&vis[posx][posy][0]==x&&vis[posx][posy][1]==y) return; //死迴圈
vis[posx][posy][0]=x, vis[posx][posy][1]=y, vis[posx][posy][2]=1;
for(int i=1;i<=4;i++)
}int main()
}dfs(sx,sy,sx,sy);
if(flag) puts("yes");
else puts("no");
}}
NOIP校內模擬 T1 性感 手槍(dfs)
vis是乙個三維陣列 vis x y 0 代表第一次搜到原圖座標 x,y 的x 虛 座標,vis x y 1 代表第一次搜到原圖座標 x,y 的y 虛 座標,vis x y 2 代表是否搜過 這樣既可以判斷什麼時候進入了無限走狀態,又可以判斷是否死迴圈了 往前走一步又退回一步 include inc...
NOIP校內模擬 T1 膜法(組合數)
整理題意後 對於每個詢問其實就是 由於c m,n c m,m n 就變成了 其實就是在楊輝三角上的一列求其中的一段和 然後有個玄學的公式 什麼意思呢 證明是很容易得到的 所以把階乘預處理出來 由於1e9 7是質數 可以用費馬小定理算逆元 就可以o 1 回答 include define n 1000...
2017 9 3 校內模擬T1卡片card
題意 有三種字母,可以用兩個不同的換乙個第三種字母,兩個相同的換乙個同種字母 即消去乙個 問最後剩下的字母。第一題顯然是if題,總體來說只有三種情況 1.有三種不同的 輸出 bgr 2.有兩種不同的 3.只有一種字母 輸出這個字母 極醜 1 include2 include3 include4 us...