2013年10月17日

Truck History

摘要: poj1789:http://poj.org/problem?id=1789题意大概是这样的:用一个7位的string代表一个编号,两个编号之间的distance代表这两个编号之间不同字母的个数。一个编号只能由另一个编号“衍生”出来,代价是这两个编号之间相应的distance,现在要找出一个“衍生”方案,使得总代价最小,也就是distance之和最小。题解:问题可以转化为最小代价生成树的问题。因为每两个结点之间都有路径,所以是完全图。 此题的关键是将问题转化为最小生成树的问题。每一个编号为图的一个顶点,顶点与顶点间的编号差即为这条边的权值,题目所要的就是我们求出最小生成树来。这里我用prim算 阅读全文

posted @ 2013-10-17 22:55 天依蓝 阅读(239) 评论(0) 推荐(0) 编辑

Arctic Network

摘要: poj2349:http://poj.org/problem?id=2349题意:有卫星电台的城市之间可以任意联络。没有卫星电台的城市只能和距离小于等于D的城市联络。告诉你卫星电台的个数S,让你求最小的D.题解: 生成最小生成树,去掉最长的S条边后,剩下最长的边就是D.也就是求最小生成树中第S+1长的边。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #define INF 100000000.0 7 using namespace std; 8 int cas,x,y,top; 9 int n,s;10 double low 阅读全文

posted @ 2013-10-17 22:29 天依蓝 阅读(204) 评论(0) 推荐(0) 编辑

QS Network

摘要: zoj1586:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1586题目大意:最小生成树,不只算两点之间的费用,还要算点的费用,并不是个点只算一次费用,而是每出现一次算一次。题解:其实只需要在算距离时,把两点的距离加入其中在排序就行了。 1 #include 2 #include 3 #include 4 #include 5 #define INF 100000000 6 using namespace std; 7 int n,cas; 8 int g[1002][1002]; 9 int lowcost[100 阅读全文

posted @ 2013-10-17 12:39 天依蓝 阅读(276) 评论(0) 推荐(0) 编辑

导航