2013年3月4日
摘要: 题目链接。分析:他考虑从A区域到B区域仅当存在一条从B到机房的路线比任何一条从A到机房的路线更近(否则可能永远都到不了机房了…)。这句话是本题的关键。我WA了很多次。。也是因为没有看懂该话。本题思路就是先用spfa求出(n,n)到各点的最短路,然后用记忆化搜索。AC代码如下:#include <stdio.h>#define MAXN 55const int INF = (1<<24);const int MAX_QUE = MAXN*MAXN;typedef struct Pos{ int x, y;}Pos;Pos q[MAXN*MAXN];int G[MAXN][ 阅读全文
posted @ 2013-03-04 22:16 Still_Raining 阅读(266) 评论(0) 推荐(0)
摘要: 题目链接。分析:本题就是有一条边的权值可以减半情况下的求两点间的最短路。一开始我想的是先求出不考虑减半情况下的最短路,然后将最短路中的最大权值减半。这样得到的结果是不对的。如下图:如果先找不减半最短路1->2->3。总花费为11。将最大的8除以2,所得结果为7。而从1到3将边权减半得到的是6.所以符合题意的最短路应该为1->3。所以先不考虑减半求最短路的想法是走不通的。如此的话,本题可以用两次spfa分别求两个点到所有点的最短路,然后分别枚举每一条边权值减半的情况。AC(未优化)代码如下:View Code #include <cstdio>#include &l 阅读全文
posted @ 2013-03-04 11:09 Still_Raining 阅读(338) 评论(0) 推荐(0)