下面這種是廣搜(luogu p1141 01迷宮)#include
#include
#include
#include
using
namespace
std;
const
int dx[4]=;
const
int dy[4]=;
int g[1001][1001],f[1001][1001],d[1000005];//d陣列就是在下的優化,每種顏色對應的答案
int n,m,k,ans,cnt=1;
string c;
void init()
void dfs(int x,int y)
d[cnt]=ans;
}int main()
for(int i=1;i<=k;i++)
printf("%d\n",d[f[a][b]]);
}return
0;}
#include
using namespace std;
struct node a[1000001];
char map[1001][1001];
int n,m,startx,starty,num,book[1001][1001],mark[1001][1001],ans[1000001];
int next[4][2]=,,,};
int bfs(int color)
}head++;
}return sum;
}int main()
for(i=1;i<=m;i++)
else
num++;
}return 0;
}
不知為何當初的自己要發以上兩篇部落格,明明很簡單的題目,發部落格就算了,結果還是別人的,真是太菜了.背景 background
(喵星人lhx和wd同心協力擊退了汪星人的入侵,不幸的是,汪星人撤退之前給它們製造了一片幻象迷宮。)
wd:嗚嗚,腫麼辦啊……
lhx:momo…我們一定能走出去的!
wd:嗯,+u+u!
幻象迷宮可以認為是無限大的,不過它由若干個n*m的矩陣重複組成。矩陣中有的地方是道路,用』.』表示;有的地方是牆,用』#』表示。lhx和wd所在的位置用』s』表示。也就是對於迷宮中的乙個點(x,y),如果(x mod n,y mod m)是』.』或者』s』,那麼這個地方是道路;如果(x mod n,y mod m)是』#』,那麼這個地方是牆。lhx和wd可以向上下左右四個方向移動,當然不能移動到牆上。
請你告訴lhx和wd,它們能否走出幻象迷宮(如果它們能走到距離起點無限遠處,就認為能走出去)。如果不能的話,lhx就只好啟動城堡的毀滅程式了……當然不到萬不得已,他不想這麼做。。。
輸入輸出格式
輸入格式:
輸入包含多組資料,以eof結尾。
每組資料的第一行是兩個整數n、m。
接下來是乙個n*m的字元矩陣,表示迷宮裡(0,0)到(n-1,m-1)這個矩陣單元。
輸出格式:
輸出格式 outputformat
對於每組資料,輸出乙個字串,yes或者no。
輸入輸出樣例
輸入樣例#1
輸出樣例5
4##.#
##s#
#..#
#.##
#..#54
##.#
##s#
#..#
..#.
#.##
yes
no說明
資料範圍和注釋 hint
對於30%的資料,n,m<=20
對於50%的資料,n.m<=100.
對於100%的資料,n,m<=1500,每個測試點不超過10組資料.
籠統的說,這道題就是要找一條路,可以無窮盡的走下去.也就是差不多走到某個點後,可以從這點回到原來的起點.可以看看這個大佬解釋的:
#include
#include
#include
#include
#include
using
namespace
std;
int n,m,sx,sy,dx[4]=,dy[4]=,ans=0;
int vis[1510][1510][3]=;
bool
map[1510][1510]=;
void dfs(int x,int y,int xx,int yy) //如果這個點走過,並且不完全是和上乙個點相同,那就返回1
if(vis[xx][yy][2]&&vis[xx][yy][0]==x&&vis[xx][yy][1]==y) return ;//如果走到上乙個點,那就回溯
vis[xx][yy][0]=x;vis[xx][yy][1]=y;vis[xx][yy][2]=1;//記錄一下
register
int x1,y1;
for(register
int w=0;w<=3;++w)
}int main()
}dfs(sx,sy,sx,sy);
if(ans) cout
<<"yes"
cout
<<"no"
0;}
String類方法彙總
1.字串串聯 string concatenation var q from c in db.customers select new 語句描述 這個例子使用 運算子在形成經計算得出的客戶location值過程中將字串欄位和字串串聯在一起。2.string.length var q from p i...
C 類的彙總
1 父類的指標可以指向子類物件位址 2 想讓子類能夠重寫父類函式且能夠呼叫子類自己的同名函式,就要把函式命名為virtal虛函式,include include using namespace std class shape 形狀 class polygo public shape 多邊形 void...
聚類演算法彙總
作為無監督領域 unsupervised 乙個太過famous的演算法了,聚類 clustering 就是對大量未知標註的資料集,按照資料的內在相似性將資料集劃分為多個類別,使類別內的資料相似度較大而類別間的資料相似度較小.然而,裡面仍然有很多需要注意的地方,對於聚類本身,目前也有很多改進版本了,所...