上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 21 下一页
摘要: 二分图匹配:https://www.byvoid.com/zhs/blog/hungary矩阵乘法:http://www.matrix67.com/blog/archives/276/__builtin_popcount()的用法:http://blog.csdn.net/gaochao1900/article/details/5646211 阅读全文
posted @ 2013-09-13 11:12 N_ll 阅读(82) 评论(0) 推荐(0)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1272思路:所求的图满足两点要求:(1) 连通 (2) 不存在环 。而这两点用并查集都能判断。注意本题中 输入 0 0时,应输出 Yes。 1 #include 2 #include 3 const int N=100002; 4 int f[N],vis[N]; 5 void init() 6 { 7 for (int i = 1; i <= N; i ++) 8 { 9 f[i] = i;10 vis[i] = 0;11 }12 13 }14 i... 阅读全文
posted @ 2013-09-12 17:04 N_ll 阅读(175) 评论(0) 推荐(0)
摘要: 最短路http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2622 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 const long long INF=1LLG[102];16 void init()17 {18 memset(vis,0,sizeof(vis));19 for (int i = 0;i q;31 q.push(uu);32 vis[uu] = 1;33 ... 阅读全文
posted @ 2013-09-07 20:34 N_ll 阅读(160) 评论(0) 推荐(0)
摘要: http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2566 1 #include 2 #include 3 char map[120][120]; 4 int v[120][120];//用来标记某点所能到达的所有路径 5 int dir[4][2] = {{0,1},{1,0},{0,-1},{-1,0}}; 6 int n,m; 7 void dfs(int x,int y,int t) 8 { 9 v[x][y] = t;10 for (int i = 0; i = 0 && 阅读全文
posted @ 2013-09-07 20:21 N_ll 阅读(268) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=1703题意:有两个黑帮团伙,共n名团伙成员(不知道属于这两个黑帮中的哪一个)。现在警察有一些信息,每条信息包含2个人的编号,如果给出A a b,则输出a b的关系,即是否属于同一个黑帮;如果给出D a b,则说明a b属于不同的黑帮。思路:典型的并查集,只要两者的关系确定了,就将他们放入同一个集合内,而另外增加一个表示关系的数组link[]来表示该节点与其父亲的关系,0表示同一类,1表示不同团伙。初始时集合只有自己一个元素,link[] 初始为0。第一次用c++的输入输出,TLE了。。改成C的就A了。TLE 代码: 1 #include . 阅读全文
posted @ 2013-09-06 21:17 N_ll 阅读(246) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=1416题意:将一个数分成几部分,使其分割的各个数的和最大并且小于所给的数。凌乱了。。参考的会神的代码。。orz... 1 #include 2 #include 3 4 int arr[102],ans[102]; 5 int max,len,f; 6 int a,b; 7 8 void dfs(int n,int now,int sum,int k,int t) 9 {10 int m = n % 10;11 if (!n)12 {13 arr[k] = now;14 if ... 阅读全文
posted @ 2013-08-30 21:53 N_ll 阅读(207) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=2676填九宫格思路:将每一行,每一列及每一个3*3块中出现的数字标记上,将可填的空的位置记录下来,枚举1-9,填入合适的数。 1 #include 2 #include 3 int row[10][10],col[10][10],arr[10][10];//row[x][i]表示i所在的行为x; 4 //col[y][i]表示i所在的列为y; 5 //arr[n][i]表示i所在... 阅读全文
posted @ 2013-08-30 17:26 N_ll 阅读(179) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=2531不太理解这个代码。。。 1 #include 2 #include 3 int map[32][32],v[32]; 4 int n,max; 5 void dfs(int row,int sum) 6 { 7 8 int ans = sum; 9 v[row] = 1;10 for (int i = 1; i max)18 max = ans;19 for (int i = row+1; i sum)22 {23 dfs(i,ans);... 阅读全文
posted @ 2013-08-30 11:39 N_ll 阅读(208) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=1321思路:按行搜索,回溯时还原棋盘。 1 #include 2 #include 3 int map[9][9],vis[9]; 4 int ans,n,k; 5 void dfs(int row,int cnt) 6 { 7 8 if (k==cnt) 9 {10 ans++;11 return ;12 }13 if (row > n)14 return ;15 for (int i = 1; i <= n; i ++)16 {17 ... 阅读全文
posted @ 2013-08-30 10:29 N_ll 阅读(146) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=3009题意:一个小球要从2走到3,1代表障碍物,0代表可走。要求如果小球没遇到障碍物1,则小球按原来的方向一直走,直到遇到障碍物,障碍物变成0,小球任选一个方向继续走,此时步数加1,问从2走到3最少需要几步。 1 #include 2 #include 3 int map[32][32]; 4 int s_x,s_y,e_x,e_y,min; 5 int dir[4][2] = {{0,1},{1,0},{0,-1},{-1,0}}; 6 void dfs(int x,int y,int step,int d) 7 { 8 if... 阅读全文
posted @ 2013-08-30 09:21 N_ll 阅读(218) 评论(0) 推荐(0)
上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 21 下一页