摘要: 题意:在一张有重边的有向图中有若干城市,有若干个询问每次告诉你最多能经过q个城市,让你求最多经过q个城市从1号城市到n号城市的最短路是什么?思路:很容易想到用Dijkstra稍作变形就能解决这一题,只要在我们计算最短路的dis数组中再增加一维,表示最多经过的城市数,这样每次放进队列中的第二个状态变成两个,最后再遍历一下dis数组求一下最小值就能得出答案了。代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #defi... 阅读全文
posted @ 2014-01-11 21:31 张小豪 阅读(424) 评论(0) 推荐(0) 编辑
摘要: 这道题是world finals的热身赛第一题。弱菜花了两个小时在做出来-。-题意:给你一张无向图,然后给若干个查询,问你任意两个定点之间的最短路。最短路的定义是这样的:每个定点有权值,每个边也有权值,最短路等于路径上的所有边权值之和+所有定点的权值最大值。思路:这道题先分析一下测试数据,顶点最多只有80个边最多有1000条所以一定是有重边的,这道题又要用邻接矩阵存所以输入的时候注意一下就好了,然后看查询有6000+个所以还是会有很多重复的,因此我们就可以想到用floyd来做这道题了。那么定点的权值怎么处理呢?我们想到了floyd的dp过程是按定点顺序的,所以我们将顶点按照花费排个序,这样有序 阅读全文
posted @ 2014-01-11 17:08 张小豪 阅读(208) 评论(0) 推荐(0) 编辑