算法设计4——贪心算法(3)
摘要:1 聚类问题:最大间隔的K聚类。我们定义一个K聚类的间隔是处在不同聚类中的任意一对点之间的最小距离。一个自然的目标是寻求具有最大可能间隔的k聚类。 这个问题的算法与Kruskal算法非常相似,首先每一个点都是一个聚类,然后依次按照Kruskal进行计算。。。相当于在Kruskal中删除了k-1条最贵的边。 2 假设给定一个连通图G,假定边的费用都是不同的,G有n个顶点和m条边,指定了G的一条特...
阅读全文
posted @
2012-11-15 16:40
O(1)的小乐
阅读(570)
推荐(0)
Timus 1078 SPFA
摘要:之前做这个题使用的方法是Floyd其所有点的最长路,但是这个还可以使用SPFA来做,因为这个图是肯定没有正环的图,然后把所有入读为0的点,都一次性的加入到SPFA的队列或者栈中,则可以求解出一个全局最大值。然后用SPFA可以加一个父亲域,来回复我们获得的路径。 1: 2: #include <queue> 3: #include <iostream> 4: #incl...
阅读全文
posted @
2012-11-10 14:40
O(1)的小乐
阅读(146)
推荐(0)
Timus 1078 最长路Floyd
摘要:可以把问题转换为一个有向图中求最长路的过程,需要Floyd算法来打印最长路。保存即可。 http://acm.timus.ru/problem.aspx?space=1&num=1078 1: 2: #include <queue> 3: #include <iostream> 4: #include <string.h> 5: #include <stdio....
阅读全文
posted @
2012-11-10 12:51
O(1)的小乐
阅读(310)
推荐(0)
POJ 3268
摘要:求从原点到达某个点之后返回,来回最长的距离是多少? 比较基础的问题,两遍Dijkstra就可以了。 1: 2: #include <iostream> 3: #include <vector> 4: #include <algorithm> 5: #include <queue> 6: #include <string.h> 7: #include ...
阅读全文
posted @
2012-11-10 00:04
O(1)的小乐
阅读(203)
推荐(0)
POJ 1860 SPFA 最长路
摘要:货币兑换问题,经典问题,这个问题解决的关键是发现,如果存在正环,那么一定是YES。稍微改一下SPFA,寻找一个图中的正环。 1: /** 2: search the longest path , just jude whether there are a positve cycle. 3: 4: */ 5: 6: #include <queue> 7...
阅读全文
posted @
2012-11-09 23:26
O(1)的小乐
阅读(1872)
推荐(0)
POJ 3169 查分约束方程
摘要:一道简单的差分约束方程,差分约束方程由Bellmanford转换而来,一组差分方程由 x-y <=d 的形式,而在最短路中松弛条件有dis(x)<= dis(y)+w。 所以产生了一条由y连向x的有向边,权重为d。 https://github.com/Sosi/ProgrammingContest/blob/master/OnlineJudge/POJ/PKU3169.cpp 1: ...
阅读全文
posted @
2012-11-09 21:39
O(1)的小乐
阅读(224)
推荐(0)
POJ 3159 SPFA
摘要:给定一个图,(V 3*10^4, E 1.5*10^5),如此大规模的图,求一个最短路,只能使用SPFA(使用栈进行优化) https://github.com/Sosi/ProgrammingContest/blob/master/OnlineJudge/POJ/PKU3159.cpp 1: #include <queue> 2: #include <iostream> 3: ...
阅读全文
posted @
2012-11-09 21:17
O(1)的小乐
阅读(255)
推荐(0)