UVALive 6885 Flowery Trails 最短路枚举
题目连接:
http://acm.hust.edu.cn/vjudge/problem/visitOriginUrl.action?id=129723
题意:
给你一个n点m图的边
1到n有多条最短路,问你所有经过的边的总和*2是多少
题解:
对1,n分别求单源最短路径上spfa
枚举某条边是否为最短上的边
即 边权+disA[i] + disB[i] = 最短路长度,就是答案
#include<bits/stdc++.h>
using namespace std;
const int N = 1e6+, M = 1e6+, mod = 1e9+, inf = 1e9+;
typedef long long ll; int head[N],t,vis[N],dis[N],n,m,disA[N],disB[N];
struct edge{int to,value,next;}e[N*]; 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 = ;
memset(head,-,sizeof(head));
} void spfa(int u) {
for(int i=;i<=n;i++) dis[i] = inf, vis[i] = ;
vis[] = ;
dis[u] = ;
queue<int> q;
q.push(u);
while(!q.empty()) {
int k = q.front();q.pop();
vis[k] = ;
for(int i=head[k];i!=-;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] = ;
}
}
}
}
}
int main() {
while(~scanf("%d%d",&n,&m)) {
init();
for(int i=;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();
for(int i=;i<=n;i++) disA[i] = dis[i];
spfa(n);
for(int i=;i<=n;i++) disB[i] = dis[i];
int mx = dis[];
ll ans = ;
for(int i=;i<=n;i++) {
for(int j=head[i];j!=-;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);
}
}
UVALive 6885 Flowery Trails 最短路枚举的更多相关文章
- UVALive 6885 Flowery Trails 最短路
Flowery Trails 题目连接: https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid= ...
- UVALive 6885 Flowery Trails
两次SPFA #include<cstdio> #include<cstring> #include<cmath> #include<vector> # ...
- hdu 1595 find the longest of the shortest【最短路枚举删边求删除每条边后的最短路,并从这些最短路中找出最长的那条】
find the longest of the shortest Time Limit: 1000/5000 MS (Java/Others) Memory Limit: 32768/32768 ...
- POJ 1161 Walls(最短路+枚举)
POJ 1161 Walls(最短路+枚举) 题目背景 题目大意:题意是说有 n个小镇,他们两两之间可能存在一些墙(不是每两个都有),把整个二维平面分成多个区域,当然这些区域都是一些封闭的多边形(除了 ...
- CJOI 05新年好 (最短路+枚举)
CJOI 05新年好 (最短路+枚举) 重庆城里有n个车站,m条双向公路连接其中的某些车站.每两个车站最多用一条公路连接,从任何一个车站出发都可以经过一条或者多条公路到达其他车站,但不同的路径需要花费 ...
- 2018-2019 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2018)- D. Delivery Delays -二分+最短路+枚举
2018-2019 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2018)- D. Delivery Delays -二分+最短路+枚举 ...
- HNU 13375 Flowery Trails (spfa最短路)
求最短路径覆盖的全部边权值和. 思路:分别从起点和终点两次求最短路,再比较两个点到起点的距离和他们之间的权值相加和是否等于最短路径. 这题很好 #include <cstring> #in ...
- Codeforces 667D World Tour【最短路+枚举】
垃圾csdn,累感不爱! 题目链接: http://codeforces.com/contest/667/problem/D 题意: 在有向图中找到四个点,使得这些点之间的最短距离之和最大. 分析: ...
- USACO 玛丽卡(最短路+枚举)
USACO 玛丽卡 麦克找了个新女朋友,玛丽卡对他非常恼火并伺机报复. 因为她和他们不住在同一个城市,因此她开始准备她的长途旅行. 在这个国家中每两个城市之间最多只有一条路相通,并且我们知道从一个城市 ...
随机推荐
- ssh项目删除
1.在页面添加删除跳转 <td><a href="deleteStandard.action?id=${sta.id }">删除</a>< ...
- Crashing Robots(imitate)
Crashing Robots Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 8124 Accepted: 3528 D ...
- 1009: josephus问题
1009: josephus问题 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 549 Solved: 227 Description josephus ...
- cocos基础教程(1)Mac环境下搭建
下面主要介绍cocos2d-x环境的设置以及android的环境搭建 1.下载cocos2d-x 3.0正式版 http://www.cocos2d-x.org/download 2.下载a ...
- Android之项目推荐使用的第三方库,有助于快速开发,欢迎各位网友补充
1. 使用上拉更多,下拉刷新:https://github.com/JosephPeng/XListView-Android这个是github上面更为火爆的:https://github.com/ch ...
- Autolayout及VFL经验分享
http://www.cocoachina.com/industry/20131108/7322.html 这篇不是什么教程.Cocoa autolayout出来蛮久了.以前多次想去深入研究一下,每次 ...
- [COJ0989]WZJ的数据结构(负十一)
[COJ0989]WZJ的数据结构(负十一) 试题描述 给出以下定义: 1.若子序列[L,R]的极差(最大值-最小值)<=M,则子序列[L,R]为一个均匀序列. 2.均匀序列[L,R]的权值为S ...
- [POJ1383]Labyrinth
[POJ1383]Labyrinth 试题描述 The northern part of the Pyramid contains a very large and complicated labyr ...
- [NOIP2015]推销员
[NOIP2015]推销员 试题描述 阿明是一名推销员,他奉命到螺丝街推销他们公司的产品.螺丝街是一条死胡同,出口与入口是同一个,街道的一侧是围墙,另一侧是住户.螺丝街一共有 N 家住户,第 i 家住 ...
- 在 OpenGL ES 2.0 上实现视差贴图(Parallax Mapping)
在 OpenGL ES 2.0 上实现视差贴图(Parallax Mapping) 视差贴图 最近一直在研究如何在我的 iPad 2(只支持 OpenGL ES 2.0, 不支持 3.0) 上实现 视 ...