HN OJ 13375 Flowery Trails (spfa的路径遍历)
来源:互联网 发布:淘宝商品分类在哪里 编辑:程序博客网 时间:2024/05/01 17:38
题意:就是要你求出所有最短路径上的边之和,然后把结果乘以2
思路:spfa上有一个定理:对于给定的一条边,如果从源点到该边起点的最短距离+起点到该边的最短距离+该边的权值=最短距离,那么说明该边是最短路上的边!
那么久可以干了!
AC代码:
#include <cstring>#include <cmath>#include <queue>#include <vector>#include <cstdio>#include <algorithm>using namespace std;typedef long long ll;const int maxn = 10005;const int maxm = 600000;const int INF = 0x3f3f3f3f;int n, m;struct ee{ int to; int nxt; int w;}edge[maxm];int head[maxn], tol;void init(){ memset(head, -1, sizeof head ); tol = 0;}void add(int u, int v, int w){ edge[tol].to = v; edge[tol].w = w; edge[tol].nxt = head[u]; head[u] = tol++;}int d1[maxn], d2[maxn];bool vis[maxn];void spfa(int s, int t, int d[]){ for(int i=0; i<n; ++i) d[i] = INF; memset(vis, false, sizeof vis ); queue<int> q; q.push(s); d[s] = 0; vis[s] = true; while(!q.empty()){ int u = q.front(); q.pop(); vis[u] = false; for(int i=head[u]; ~i; i=edge[i].nxt){ int &v = edge[i].to; int &cost = edge[i].w; if(d[v] > d[u] + cost){ d[v] = d[u] + cost; if(!vis[v]){ vis[v] = true; q.push(v); } } } }}void solve(){ int s = 0, t = n-1; spfa(s, t, d1); spfa(t, s, d2); ll ans = 0; int minn = d1[t]; for(int u=0;u<n;u++) { for(int i=head[u];~i;i=edge[i].nxt) { int &v=edge[i].to; int &cost=edge[i].w; if(d1[u]+d2[v]+cost==minn) { ans+=cost; } } } printf("%I64d\n", ans*2);}int main(){ int u, v, l; while(~scanf("%d%d", &n, &m)) { init(); for(int i=0; i<m; ++i){ scanf("%d%d%d", &u, &v, &l); add(u, v, l); add(v, u, l); } solve(); } return 0;}
0 0
- HN OJ 13375 Flowery Trails (spfa的路径遍历)
- HN OJ 13375 Flowery Trails (spfa的路径遍历)
- hnuoj 13375 Flowery Trails(SPFA)
- hduoj 13375 Flowery Trails
- HNU 13375 Flowery Trails (最短路)
- Flowery Trails SWERC B
- uvalive 6886 Flowery Trails fft
- Flowery Trails 多条最短路边长之和
- UVa 12878 - Flowery Trails(最短路应用)
- AOE网上的关键路径【OJ--2498】【SPFA】
- 单源最短路径的SPFA算法
- Dijkstra?+spfa+路径的记录
- OJ:马的遍历
- WUST OJ:2058: 划水的魅力(spfa)
- HN有一个奇葩的性能问题
- SPFA:改进的BellmanFord求单源最短路径算法
- 最短路径的SPFA算法
- 图的单源最短路径SPFA算法
- hdu2082 找单词(母函数)
- Spring整合MongoDB
- php压缩图片
- eclipse常用插件安装
- 面试题收集
- HN OJ 13375 Flowery Trails (spfa的路径遍历)
- 关于JSF2中自定义组件处理表单值的一些问题
- LDAP + Gerrit搭建code review系统(三) --- Gerrit
- 线程同步
- Request的getParameter和getAttribute方法的区别
- char 转换为 QString
- [leetcode-95]Unique Binary Search Trees II(c++)
- cache数据库之表的存储结构
- Javascript 兼容IE 预览本地上传图片方法