随笔分类 -  最小生成树

摘要:题目连接:http://poj.org/problem?id=3026这题数据太坑了。。。不看解题报告不知道。。。尼玛,m,n后面不能加getchar(),得加gets(s);尼玛是有多少个空格啊~wa了N遍啊思路 先求点,然后对每一个点进行一次bfs,然后存距离,之后直接最小生成树。一开始我是用两个for循环去的值,直接超时。。。代码:View Code 1 #include <iostream> 2 #include <stdio.h> 3 #include <string.h> 4 5 using namespace std; 6 struct nod 阅读全文
posted @ 2012-11-15 00:32 某某。 阅读(217) 评论(0) 推荐(0)
摘要:题目连接:http://poj.org/problem?id=2485题意比较明显。。。就是求最小生成树里的最长路,其实用dijks也可以。。。View Code 1 #include <iostream> 2 #include <stdio.h> 3 #define max 65536; 4 using namespace std; 5 6 int map[505][505]; 7 int ans; 8 void init(int n) 9 {10 int i,j;11 for(i = 1;i <= n;i++)12 {13 for(j = 1;j... 阅读全文
posted @ 2012-11-13 20:15 某某。 阅读(136) 评论(0) 推荐(0)
摘要:题目连接:http://poj.org/problem?id=1789每条边的权值为任意两truck不相等字母的数量,求最小生成树代码:View Code 1 #include <iostream> 2 #include <stdio.h> 3 #include <string.h> 4 #define max 1000000 5 using namespace std; 6 int map[2005][2005]; 7 int ans; 8 void prim(int n) 9 {10 int i,pre,j,min;11 int vis[2005] = 阅读全文
posted @ 2012-11-13 18:23 某某。 阅读(165) 评论(0) 推荐(0)
摘要:Building a Space Station题目连接:http://poj.org/problem?id=2031没有什么难点,唯一要注意的是重复路径和相交的情况,但是前一点用克鲁斯基本可以无视~今天涨姿势了~PKU上用G++输出时printf不能用lf得用f以前有个好习惯都用f。。。View Code加一个prim的写法View Code #include <stdio.h>#include <string.h>#include <math.h>#define maxn 1000000struct node{ double x,y,z,r;}degre 阅读全文
posted @ 2012-08-12 15:22 某某。 阅读(181) 评论(0) 推荐(0)
摘要:题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1301题目大意:输入一个n,表示有n个村庄,然后下面是n-1行,每行开头有两个代表字母和数字,分别表示 起始点和与其相同的村庄的个数。然后就是与其相同的村庄和道路长度,求最小连通值。代码View Code 1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 int map[30][30]; 5 int vis[30]; 6 int prim(int n) 7 { 8 int ans = 0 阅读全文
posted @ 2012-08-06 20:56 某某。 阅读(214) 评论(0) 推荐(0)
摘要:赤裸裸的最小生成树。题目大意就是输入一个N表示有n个村庄,然后输入n行n列,第i行j个元素表示i村庄离j村庄的路数多远(所以i行i列一般为零),然后输入q,表示q条路已修,然后输入q对数就可以了。(权值为零)。求使其n个村庄最小的连通值。需要注意的是可能会有重复的路出现,但是有不同的值。既然是求最小生成树,那么可以用prim算法在输入路的时候保证是最小的值。代码如下View Code 1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 int map[105][105]; 5 int 阅读全文
posted @ 2012-08-06 20:52 某某。 阅读(223) 评论(0) 推荐(0)
摘要:hdu 1879 继续畅通工程 克鲁斯 1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 typedef struct node 5 { 6 int u,v,w; 7 }edge; 8 edge e[10005]; 9 int dg[105];10 void init(int n)11 {12 int i;13 for(i = 1;i <=n ;i++)14 dg[i] = i;15 }16 int cmp(const void *a,const void *b)17 {18 阅读全文
posted @ 2012-08-06 20:42 某某。 阅读(202) 评论(0) 推荐(0)