UVALive 6885 Flowery Trails 最短路枚举
2016-07-15 21:43
603 查看
[b]题目连接:[/b]
http://acm.hust.edu.cn/vjudge/problem/visitOriginUrl.action?id=129723
[b]题意:[/b]
给你一个n点m图的边
1到n有多条最短路,问你所有经过的边的总和*2是多少
[b]题解:[/b]
对1,n分别求单源最短路径上spfa
枚举某条边是否为最短上的边
即 边权+disA[i] + disB[i] = 最短路长度,就是答案
http://acm.hust.edu.cn/vjudge/problem/visitOriginUrl.action?id=129723
[b]题意:[/b]
给你一个n点m图的边
1到n有多条最短路,问你所有经过的边的总和*2是多少
[b]题解:[/b]
对1,n分别求单源最短路径上spfa
枚举某条边是否为最短上的边
即 边权+disA[i] + disB[i] = 最短路长度,就是答案
#include<bits/stdc++.h> using namespace std; const int N = 1e6+20, M = 1e6+10, mod = 1e9+7, inf = 1e9+1000; typedef long long ll; int head ,t,vis ,dis ,n,m,disA ,disB ; struct edge{int to,value,next;}e[N*2]; void add(int u,int v,int w) {e[t].next=head[u],e[t].to=v,e[t].value=w;head[u]=t++;} void init(){ t = 0; memset(head,-1,sizeof(head)); } void spfa(int u) { for(int i=1;i<=n;i++) dis[i] = inf, vis[i] = 0; vis[1] = 1; dis[u] = 0; queue<int> q; q.push(u); while(!q.empty()) { int k = q.front();q.pop(); vis[k] = 0; for(int i=head[k];i!=-1;i=e[i].next) { int to = e[i].to; if(dis[k] + e[i].value < dis[to]) { dis[to] = dis[k] + e[i].value; if(!vis[to]) { q.push(to); vis[to] = 1; } } } } } int main() { while(~scanf("%d%d",&n,&m)) { init(); for(int i=1;i<=m;i++) { int a,b,c; scanf("%d%d%d",&a,&b,&c); a++,b++; add(a,b,c); add(b,a,c); } spfa(1); for(int i=1;i<=n;i++) disA[i] = dis[i]; spfa(n); for(int i=1;i<=n;i++) disB[i] = dis[i]; int mx = dis[1]; ll ans = 0; for(int i=1;i<=n;i++) { for(int j=head[i];j!=-1;j=e[j].next) { int to = e[j].to; int value = e[j].value; if(disA[i] + disB[to] + value == mx) ans+=value; } } printf("%lld\n",2ll*ans); } }
相关文章推荐
- codeforces 360 D - Remainders Game
- POJ 3421 X-factor Chains (整数分解+组合数)
- UVA - 573 The Snail
- UVA - 253 Cube painting
- 整合 ElasticSearch 到现有 Rails 项目
- ACM--元辅音--HDOJ 1039--Easier Done Than Said?--字符串
- B. Remainders Game
- 调用http://apistore.baidu.com网站的接口
- Kafka设计解析(三)- Kafka High Availability (下)
- Kafka设计解析(二)- Kafka High Availability (上)
- UVA - 253 Cube painting
- 模仿AIDL实现进程间通信
- 10.Examine the following statement that is used to modify the constraint on the SALES table:
- wait、notify、notifyAll和Condition
- No grammar constraints (DTD or XML schema).....两种解决方法
- 使用二分法Arrays.binarySearch()与list.contains()进行元素比较的效率分析
- Service二——跨进程访问AIDL
- 卓易科技的人工智能“大野心”
- Exchange Server 2010下,检测用户密码到期通知提醒脚本
- hdu_2457_DNA repair(AC自动机+DP)