2013年3月31日

Domino Effect ZOJ 1298 POJ 1135 Dijkstra

摘要: 这题WA很久,然后找不出原因,后来看了书上的程序(图论理论算法实现及应用神马的),然后感觉不出来自己哪里错了,后来改了改,把无穷大的定义改小了点,再放到ZOJ上,成功AC了,我都不知道为什么,也许还改了其他地方,我已经糊涂了,然后又把它放POJ 1135上又WA了,我都憔悴了,最后我想起以前刷水题时要把double用%f输出,我试了一下,果然AC了,求解释`````贴代码:View Code 1 #include <cstdio> 2 #include <cstring> 3 #define MAXN 505 4 #define INF 1000000 5 int n; 阅读全文

posted @ 2013-03-31 23:04 allh123 阅读(171) 评论(0) 推荐(0) 编辑

QS Network ZOJ 1586 Prim

摘要: 这个题绝对的Prim,但是这题有个怪一点的地方,他的适配器要重复买,比如顶点A和B连了一条边,顶点B和C连了一条边,那么要买,两个B适配器,一个A和一个C适配器,我先理解错了,以为只要买一个B适配器就可以了,所以连测试数据都过不了。然后可以直接把两个适配器的价格算在这条边的权值上,反正总的要求是造价最低嘛。。。贴代码:View Code 1 #include <cstdio> 2 #define MAXN 1020 3 int n; 4 int sum; 5 int lowcost[MAXN]; 6 int edge[MAXN][MAXN]; 7 void Prim() 8 { 9 阅读全文

posted @ 2013-03-31 21:26 allh123 阅读(156) 评论(0) 推荐(0) 编辑

Truck History POJ 1789 ZOJ 2158 Prim算法

摘要: 就是Prim算法,求最小生成树,把每个汽车编号看成点,两个编号的距离,也就是相同位置不同字符的数目,就看做边,显然,看成无向图,谁生成谁自己想想就行了 ,这里边比较多,用Prim算法。代码:View Code 1 #include <cstdio> 2 #define MAXN 2005 3 int n; 4 int lowcost[MAXN]; 5 int edge[MAXN][MAXN]; 6 int dis(char a[],char b[]) 7 { 8 int s = 0; 9 for(int i=0; i<7; i++)10 if(a[i] != ... 阅读全文

posted @ 2013-03-31 21:21 allh123 阅读(141) 评论(0) 推荐(0) 编辑

Network POJ 1861 ZOJ 1542 Kruskal算法 提问方式有点变化而已

摘要: 和ZOJ 1203解法一样,不赘述,我都直接复制的代码修改了一下贴代码:View Code 1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 #include <cmath> 5 #define MAXN 1020 6 #define MAXM 15020 7 using namespace std; 8 int n,m; //n为顶点个数,m为边数 9 struct ArcNode10 {11 int u,v; //一条边的起点和终点12 int w; //边的权 阅读全文

posted @ 2013-03-31 01:34 allh123 阅读(206) 评论(0) 推荐(0) 编辑

ZOJ 1203 Swordfish Kruskal算法求最小生成树

摘要: 就是如题的做法,在一个连通图中找一条最小生成树,Kruskal的思想就是先根据所有边的权值按小到大排序,然后依次选择边进最小生成树里,但是要排除该边加进去后出现了环,生成树里是不能有环的,这样的边就不能加入,在挑选了n-1(n为图中点的个数)条边后就结束,可以证明这样构造出来的图就是最小生生成树。再判断是否会出现环时用到并查集。int temp = parent[r1] +parent[r2];//两根结点所带结点的总数,因为写错了这句,我检查了N久,砸墙,我很激动地写成了 int temp = Find(r1)+Find(r2);然后各种程序各种混乱了。还有一点因为没有看见说每两个case中 阅读全文

posted @ 2013-03-31 00:54 allh123 阅读(193) 评论(0) 推荐(0) 编辑

导航