摘要: 题意:windy要组建一支军队,召集了N个女孩和M个男孩,每个人要付10000RMB,但是如果一个女孩和一个男孩有关系d的,且已经付给了其中一个人的钱,那么就可以付给另一个人10000-d元,求windy最少要付多少钱。解题过程:写了一个prim的最小生成树才发现原来整个图不是连通的,所以想到用Kruskal,刚开始的时候val中存的是10000-d,然后求最小生成树,但是最后求有几棵树的时候不是很好计算,改了一下f[x]、f[y]的赋值规则还是不行,然后看到有人说求最大生成树,然后就改了一下条件就AC了。代码:View Code #include <stdio.h>#includ 阅读全文
posted @ 2012-10-25 16:22 Misty_1 阅读(1136) 评论(0) 推荐(0) 编辑
摘要: 题意:给出N个正常的机器人,还有一个感染病毒的机器人,从这台机器人开始传播病毒,当传染到一个机器人,这个机器人也开始加入传播的行列,向其他正常的机器人传播,问最少的时间。解题过程:这题说难其实不难,也很容易就能想到用最小生成树,就是对BFS搜索算法的不熟,导致在建立连接的时候有些麻烦。这题先用BFS计算出任意两点之间的距离,然后用prim算最小生成树就行了。代码:View Code #include <stdio.h>#include <stdlib.h>#include <string.h>#include <iostream>#include 阅读全文
posted @ 2012-10-25 16:12 Misty_1 阅读(147) 评论(0) 推荐(0) 编辑