枚举+最短路
题意是说出发地 和 目的地 之间有一条边是免费的。问你最小费用。
误区:求出最短路-路径中的最大边。(有些其他边免费之后,可能最短路就变了)
正确思路:枚举每条边,将其费用设为0.然后求最短路。找费用最小。
这是无向图,至于地名可以用map映射。
#include
#include
#include
#include
#include...
分类:
其他好文 时间:
2014-07-19 23:18:49
阅读次数:
268
最短路问题。
Dijkstra,SPFA,Floyd 都可求。题意很明了,求最安全的路,乘起来就好了。
有个小优化就是SPFA 算过的起点就不再去算了。
还有判断一下终点,开始没判断,WA了一发。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#inc...
分类:
其他好文 时间:
2014-07-19 02:45:06
阅读次数:
183
最短路水题,这次用SPFA写#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std...
分类:
其他好文 时间:
2014-07-18 21:02:55
阅读次数:
207
#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;typedef long ...
分类:
其他好文 时间:
2014-07-18 19:22:03
阅读次数:
157
最短路+DP(个人用的SPFA+完全背包)
做了一上午……开始想用SPFA+BFS。但是写了半天越写越乱,放弃了。
就想到了是不是可以当作背包问题(背出病了……)把鞋子可以使用的次数当作背包容量。做完全背包。
先N次SPFA把 各点的最短距离算出来,其实比较适合Floyd。(个人用vector实现伪邻接表,然后SPFA)
然后SPFA更新路径的时候,当鞋子使用次数不...
分类:
其他好文 时间:
2014-07-18 11:18:36
阅读次数:
279
其实就是枚举最高点和起点,然后以最高点为源点在两张图上分别做spfa。一遍最短路,一遍最长路。暴露出来的问题:思维不够清晰,代码能力还不够#include #include #include #include #include #include #include #include #include ...
分类:
其他好文 时间:
2014-07-17 18:16:43
阅读次数:
206
以杭电2544题目为例
最短路
Problem Description
在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗?
Input
输入包括多组数据。每组数据第一行是两个...
分类:
其他好文 时间:
2014-07-16 17:33:23
阅读次数:
240
题意:给N个点,还有另外m个点(其中只能选K个),求最短路。
思路:在SPFA的基础上,用一个数组来统计,在某点入队时(要拓展其他点了),若该点是m个点中的,则count【i】=原来的+1;若不是,则继承原来的。出队时候限制一下,若大于K了,就停止拓展。
原题:目前在一个很大的平面房间里有 n 个无线路由器,每个无线路由器都
固定在某个点上。任何两个无线路由器只要距离不超过 r 就能互相建立...
分类:
其他好文 时间:
2014-07-16 14:16:43
阅读次数:
258
点击打开链接
题意:货币兑换,换取最大钱币;
解析:构图,spfa
#include
#include
#include
#include
#include
using namespace std;
const int maxn = 1005;
double cost[ maxn ][ maxn ], dis[ maxn ];
int vis[ maxn ];
int n, m;
c...
分类:
其他好文 时间:
2014-07-14 17:37:44
阅读次数:
147
本题其实也可以使用SPFA算法来求解的,不过就一个关键点,就是当某个顶点入列的次数超过所有顶点的总数的时候,就可以判断是有负环出现了。
SPFA原来也是可以处理负环的。
不过SPFA这种处理负环的方法自然比一般的Bellman Ford算法要慢点了。
#include
#include
#include
const int MAX_N = 501;
const int MAX_M =...
分类:
其他好文 时间:
2014-07-13 18:16:50
阅读次数:
352