摘要: http://poj.org/problem?id=1321 1 #include 2 #include 3 #include 4 using namespace std; 5 int n,k,count; 6 char map[20][20]; 7 int vis[20];//标记某列是否被访问 8 void dfs(int r,int c) 9 {10 if(c==0)//递归边界,当所有棋子都放的合法,计数加一11 {12 count++;13 return;14 }15 if(n-r+10)18 {19 ... 阅读全文
posted @ 2013-08-02 15:55 海东青飞吧! 阅读(211) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=1308 1 #include 2 #include 3 #define N 100001 4 int bin[N],flag; 5 int find(int x) 6 { 7 //不压缩路径 8 /*int r=x; 9 while(bin[r]!=r)10 r=bin[r];11 return r;*/12 13 //压缩路径14 int k,t;15 t=x;16 while(t!=bin[t])17 t=bin[t];18 ... 阅读全文
posted @ 2013-08-02 10:49 海东青飞吧! 阅读(228) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=1611 1 #include 2 int bin[30003],rank[30003]; 3 int find(int x) 4 { 5 int r=x; 6 while(bin[r]!=r) 7 r=bin[r]; 8 return r; 9 }10 void merge(int x,int y)11 {12 int fx,fy;13 fx=find(x);14 fy=find(y);15 if(fx==fy)16 return;17 if(r... 阅读全文
posted @ 2013-08-02 09:17 海东青飞吧! 阅读(146) 评论(0) 推荐(0)