[题目大意] http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=2249 [题目大意] 一张无向图,建造每条道路需要的费用已经给出, 现在求在起点到每个点都是最短路的情况下的最小修路费用 [题解] 考虑到最后的图一定是树形的,因此只要保留每个点与其父节点之间的边的费用最小值即可 在计算最短路的同时不断更新费用 [代码] #include <cstdio> #include <cstring> #include <…
某国王需要修路,王国有一个首都和多个城市,需要修路.已经有修路计划了,但是修路费用太高. 为了减少修路费用,国王决定从计划中去掉一些路,但是需要满足一下两点: 保证所有城市都能连通 所有城市到首都的最短路不变 思路: 在Dijkstra找最短路的时候,就记录一下费用 if(d[e.to] > d[v] + e.dist) { ... prev_min_cost[e.to] = e.cost; // 最短路必经之路,则费用也必须要 } else if(d[e.to] == d[v] + e.dis…
题目:给出若干个建筑之间的一些路,每条路都有对应的长度和需要的花费,问在保证源点1到其他个点的距离最短的情况下,最少的花费是多少/ 思路:和一般的最短路问题相比,多了一个 数组id[i],用来记录到达i点在距离最短的情况下是由那条边到达的. #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<vect…
Road Construction Descriptions Mercer国王是ACM王国的王者.他的王国里有一个首都和一些城市.令人惊讶的是,现在王国没有道路.最近,他计划在首都和城市之间修建道路,但事实证明他的计划的建设成本远高于预期. 为了降低成本,他决定通过从原计划中删除一些道路来制定新的施工计划.但是,他认为新计划应满足以下条件: 对于每对城市,都有一条连接它们的路线(一组道路). 首都和每个城市之间的最小距离不会改变他原来的计划. 许多计划可能符合上述条件,但King Mercer希…
ROADS Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 12436 Accepted: 4591 Description N cities named with numbers 1 - N are connected with one-way roads. Each road has two parameters associated with it : the road length and the toll that…
传送门:地铁 思路:拆点,最短路:拆点比较复杂,所以对边进行最短路,spfa会tle,所以改用Dijkstra(优先队列优化) 模板 /************************************************************** Problem: User: youmi Language: C++ Result: Accepted Time: Memory: *****************************************************…
                                                                                                                                             Road Construction Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 11210   Accepted: 5572 Descrip…
Road Construction Time Limit:2000MS    Memory Limit:65536KB    64bit IO Format:%I64d & %I64u SubmitStatus Description It's almost summer time, and that means that it's almost summer construction time! This year, the good people who are in charge of t…
题目链接:http://poj.org/problem?id=1511 就是求从起点到其他点的最短距离加上其他点到起点的最短距离的和 , 注意路是单向的. 因为点和边很多, 所以用dijkstra优先队列的做法. 起点到其他点的最短距离之和就是dij一下 . 要求其他点到起点的最短距离的话就是把原先边的方向反向一下,然后再求起点到其他点的最短距离之和 , 同样dij一下. 代码如下: #include <iostream> #include <cstdio> #include &l…
Road Construction Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 10141   Accepted: 5031 Description It's almost summer time, and that means that it's almost summer construction time! This year, the good people who are in charge of the r…