随笔分类 -  Kruskal

摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4750题意: 给出一些边,一个点到另一个点的一条路径,这条路径上的权值尽可能小,然后他给你一个t 值,然你计算比 t 大的这些路径有多少条。坑爹: 看了下边和点的数量,暴力是不行的,但也还是试了一下,因为当时实在想不到怎么做,就每次找比 t 大的边然后向这条边上的两个点外拓展,最后只用计算一下两边点个数相乘再乘以二,最后发现是不行的,因为我这次找到比 t 大所对应的边然后拓展出去所经过的边也有可能大于 t , 但是下次拓展到这个边的时候就会有重复,一下子就不知道怎么弄了。解法: 开始的时候也想过要做一些... 阅读全文
posted @ 2013-09-21 21:12 pc.... 阅读(469) 评论(0) 推荐(0)
摘要:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1307题意: 找一条路径 1.这条路径中的最大的边一定要尽可能的小 2.满足1的情况下即最大的边相同的时候在找最短路径。坑爹: 一开始只用最小生成树做,发现如果给的边的权值都一样的话,那你并查集建图完全就跟你输入的顺序有关,权值都一样的话,并起来的边未必是你最短路要走的边。 找那个最大的边的时候我用递归来找最大的边中间可能有错误,现在还是不知道为什么。解法: 不用DFS来找最大的边,因为kruskal中加的边是经过排序的,所以只要加到起点和终点连通的时候就停止了,并返回那个值,这个值... 阅读全文
posted @ 2013-08-31 20:50 pc.... 阅读(317) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1162题意: 给出N个坐标,坐标之间的距离就是权值,是个最小生成树的问题,用Kruskal算法做。坑爹: 一道简单的最小生成树的题目,N个点对应要有N-1条边,没什么难点主要是要细心点就行了。解法: Kruskal算法的模版一套上去就行了。View Code 1 #include<iostream> 2 #include<math.h> 3 #include<algorithm> 4 using namespace std; 5 6 const int maxn = 100 阅读全文
posted @ 2012-09-05 19:52 pc.... 阅读(210) 评论(0) 推荐(0)