摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1162输入一个整数n,表示点的个数.接下来n行,每行有两个浮点数表示点的x坐标y坐标.构造一棵最小生成树.用Kruskal做.先算出各条边的权值.再合并//View Code 1 #include <iostream> 2 #include <algorithm> 3 #include <cmath> 4 using namespace std; 5 const int MAX = 10000 + 10; 6 const int INF = 0x3fffffff; 7 in 阅读全文
posted @ 2012-09-06 21:01 zx雄 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 初始化的细节问题我们看到的求最优解的背包问题题目中,事实上有两种不太相同的问法。有的题目要求“恰好装满背包”时的最优解,有的题目则并没有要求必须把背包装满。一种区别这两种问法的实现方法是在初始化的时候有所不同。如果是第一种问法,要求恰好装满背包,那么在初始化时除了f[0]为0其它f[1..V]均设为-∞,这样就可以保证最终得到的f[N]是一种恰好装满背包的最优解。如果并没有要求必须把背包装满,而是只希望价格尽量大,初始化时应该将f[0..V]全部设为0。为什么呢?可以这样理解:初始化的f数组事实上就是在没有任何物品可以放入背包时的合法状态。如果要求背包恰好装满,那么此时只有容量为0的背包可能被 阅读全文
posted @ 2012-09-06 19:42 zx雄 阅读(231) 评论(0) 推荐(0) 编辑