Spfa: 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 const int maxn=100000+10,INF=-1u>>1; 8 struct Tedge{int x,y,w,ne...
分类:
其他好文 时间:
2015-04-17 23:40:20
阅读次数:
153
显然最短路长度随着v的变化是单调的,于是可以二分答案,据说spfa在网格图上表现较差。#include#include#includeusing namespace std;typedef double db;typedef long long ll;#define N 101#define INF...
分类:
其他好文 时间:
2015-04-17 17:40:14
阅读次数:
151
题意:
有向图中每个点有一个欢乐值,边有边权,要求一条环路,使环路上欢乐值得和/路径和最大。
分析:
二分参数,判断是否存在负权,这里判负圈没用spfa,用的是一种效率很高的方法。
代码:
//poj 3621
//sep9
#include
#include
using namespace std;
const int maxN=1024;
const int maxM=5012;...
分类:
其他好文 时间:
2015-04-17 11:35:23
阅读次数:
196
Shopping
Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 577 Accepted Submission(s): 197
Problem Description
You have just moved in...
分类:
其他好文 时间:
2015-04-15 21:32:38
阅读次数:
178
Bus Pass
Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 750 Accepted Submission(s): 302
Problem Description
You travel a lot by bu...
分类:
其他好文 时间:
2015-04-15 13:29:20
阅读次数:
118
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=2680
题目大意,就是一个人可以从多个起点开始出发,看到终点的最短路是多少。。只有可以运用和hdu2066一样的思想,对于每个起点可以看成是跟最最开始的点之间有一条权值为0的边。可以把最开始的点记做0点。那这样就可以使用单源最短路了。之前都没有用过spfa,今天来运用了一下。
算法大致流程是用...
分类:
编程语言 时间:
2015-04-13 11:05:07
阅读次数:
194
http://poj.org/problem?id=2387
题目大意就是求最短路,从n到1的最短路。就用来熟悉一下spfa的写法。
一开始贡献了好几次wa,结果发现是因为n,m写反了。。。。
没有什么拐弯的地方,来熟悉spfa直接附上代码:
#include
#include
#include
#include
#include
using namespace std;
#de...
分类:
其他好文 时间:
2015-04-13 11:04:17
阅读次数:
148
Harry Potter and the Final Battle
Time Limit: 5000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 2666 Accepted Submission(s): 761
Problem Descriptio...
分类:
其他好文 时间:
2015-04-12 21:08:26
阅读次数:
193
我简单的描述一下题目,题目中所说的有道路和航路:1.公路是双向的,航路是单向的;2.公路是正值,航路可正可负;每一条公路i或者航路i表示成连接城镇Ai(1 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include ...
分类:
编程语言 时间:
2015-04-09 15:12:01
阅读次数:
342
spfa的SLF优化就是small label first 优化,当加入一个新点v的时候如果此时的dis[v]比队首dis[q.front()]还要小的话,就把v点加入到队首,否则把他加入到队尾,因为先扩展最小的点可以尽量使程序尽早的结束,一种方法可以用模拟队列,head,tail,但是由于不知道q...
分类:
其他好文 时间:
2015-04-08 19:29:32
阅读次数:
222