题目地址:POJ 1201 HDU 1384
根据题目意思,可以列出不等式如下:
Sj-Si>=c;
Si-S(i-1)>=0;
S(i-1)-Si>=-1;
然后用最短路spfa来解决这个不等式。用max来当源点,0为终点。最终的-d[0]就是答案。
代码如下:
#include
#include
#include
#include
#include
#include...
分类:
其他好文 时间:
2014-08-23 11:22:20
阅读次数:
191
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2962TruckingTime Limit: 20000/10000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Subm...
分类:
其他好文 时间:
2014-08-21 18:44:44
阅读次数:
208
题意:一些牛要去某一点参加聚会,然后再回到自己家,路是单向的,问花费时间最多的那头牛最少需要花费多长时间。
思路:从聚会地点返回,相当于是从某一点到其他各个点的最短路径。从牛的家中走到聚会地点,可以把路径反过来变成从聚会地点到各个点的最短路径,两个最短路径值加起来就是每头牛所花费的最小时间,找出最大的即可。
我用了两个邻接表存路径,其实这道题用邻接矩阵存更好做,矩阵横纵坐标翻转就把路径...
分类:
其他好文 时间:
2014-08-01 00:03:40
阅读次数:
269
题意:给定n中货币,以及它们之间的税率,A货币转化为B货币的公式为 B=(V-Cab)*Rab,其中V为A的货币量,
求货币S通过若干此转换,再转换为原本的货币时是否会增加
分析:这个题就是判断是否存在正权回路,可以用bellman-ford算法,不过松弛条件相反
也可以用SPFA算法,判断经过转换后,转换为原本货币的值是否比原值大、、、...
分类:
其他好文 时间:
2014-07-24 23:32:33
阅读次数:
297
解题报告
求最长路。
用SPFA求最长路,初始化图为零,dis数组也为零
#include
#include
#include
#include
#include
#define inf 99999999
#define N 110
using namespace std;
int mmap[N][N],dis[N],vis[N],n;
void spfa(int s)
{
...
分类:
其他好文 时间:
2014-07-24 17:43:16
阅读次数:
280
题意:给出青蛙A,B和若干石头的坐标,现青蛙A想到青蛙B那,A可通过任意石头到达B,
问从A到B多条路径中的最长边中的最短距离
分析:这题是最短路的变形,以前求的是路径总长的最小值,而此题是通路中最长边的最小值,每条边的权值可以通过坐标算出,因为是单源起点,直接用SPFA算法或dijkstra算法就可以了...
分类:
其他好文 时间:
2014-07-24 12:27:18
阅读次数:
250
差分约束
题意倒是简单,难的是建立约束(建边)。可以初始化INF求最小,然后输出-dis[maxn]。也可以初始化-INF求最大,输出dis[maxn]。
求最大的时候:
minn为最小,maxn为最大。
输入 u ,v len 建立约束为 u->v = len,最后在 minn和maxn之间还要建立 i->i-1=-1 , i-1->i=0。
最后求minn-1 ~max...
分类:
其他好文 时间:
2014-07-21 22:43:47
阅读次数:
293
枚举+最短路问题。
题意依然晦涩难懂。
新建一个消防站n 可以使得所有交叉路口到最近的一个消防站的距离中最大值减小,且n 是满足条件的交叉路口序号中序号最小的。
先每个消防站做SPFA。找到所有点 到最近消防站的 距离。
然后枚举 每个不是消防站的点,找到距离这个点的最大距离。然后比对 最大是否更新了。
ORZ的是,输入边的时候要EOF。简直……
谁是出...
分类:
其他好文 时间:
2014-07-21 13:21:36
阅读次数:
205
最短路问题。
题意是说:前面19行是 相邻关系,无向图,后面是询问最短。
Floyd最简单。不过我用的SPFA。其实就是求最短路,不过没有距离了,只是每次 +1 。
注意最后一行需要输出一个空行。贡献PE一发。
#include
#include
#include
#include
#include
#include
#include
#include
#include...
分类:
其他好文 时间:
2014-07-21 11:43:25
阅读次数:
137
多源最短路。
可用Floyd。我用的N次SPFA。
题意是说:不同的人有不同的圈子,每个人的消息传播目标和时间不同。求从每个人出发 开始传播,到其他人都收到消息的最短时间最长的最短。
每次SPFA 求出某人出发到其他人的最短距离,然后选择 最短距离中最长的。最后对比每个人所需,选择最小的。
你的任务是编写程序:选定一个经纪人,你首先将传闻散步给他(首先把传闻...
分类:
其他好文 时间:
2014-07-21 11:42:34
阅读次数:
155