UVALive 6885 Flowery Trails
两次SPFA
#include<cstdio>
#include<cstring>
#include<cmath>
#include<vector>
#include<queue>
#include<algorithm>
using namespace std; const int INF=0x7FFFFFFF;
const int maxn=+;
const int Maxn=+;
int N,M;
int U[Maxn],V[Maxn],C[Maxn];
struct edge
{
int from,to,cost;
}e[Maxn];
vector<int>G[maxn];
int dis1[maxn],flag1[maxn];
int dis2[maxn],flag2[maxn]; void init()
{
for(int i=;i<maxn;i++) G[i].clear();
} void spfa()
{
queue<int>Q;
for(int i=;i<maxn;i++) dis1[i]=INF;
dis1[]=;
flag1[]=;
Q.push();
while(!Q.empty())
{
int h=Q.front();Q.pop(); flag1[h]=;
for(int i=;i<G[h].size();i++)
{
int id=G[h][i];
if(e[id].from==h)
{
if(dis1[h]+e[id].cost<dis1[e[id].to])
{
dis1[e[id].to]=dis1[h]+e[id].cost;
if(flag1[e[id].to]==)
{
flag1[e[id].to]=;
Q.push(e[id].to);
}
}
}
else if(e[id].to==h)
{
if(dis1[h]+e[id].cost<dis1[e[id].from])
{
dis1[e[id].from]=dis1[h]+e[id].cost;
if(flag1[e[id].from]==)
{
flag1[e[id].from]=;
Q.push(e[id].from);
}
}
}
}
}
} void SPFA()
{
queue<int>Q;
for(int i=;i<maxn;i++) dis2[i]=INF;
dis2[N-]=;
flag2[N-]=;
Q.push(N-);
while(!Q.empty())
{
int h=Q.front();Q.pop(); flag2[h]=;
for(int i=;i<G[h].size();i++)
{
int id=G[h][i];
if(e[id].from==h)
{
if(dis2[h]+e[id].cost<dis2[e[id].to])
{
dis2[e[id].to]=dis2[h]+e[id].cost;
if(flag2[e[id].to]==)
{
flag2[e[id].to]=;
Q.push(e[id].to);
}
}
}
else if(e[id].to==h)
{
if(dis2[h]+e[id].cost<dis2[e[id].from])
{
dis2[e[id].from]=dis2[h]+e[id].cost;
if(flag2[e[id].from]==)
{
flag2[e[id].from]=;
Q.push(e[id].from);
}
}
}
}
}
}
int main()
{
while(~scanf("%d%d",&N,&M)){
init();
for(int i=;i<=M;i++)
{
scanf("%d%d%d",&U[i],&V[i],&C[i]);
e[i].from=U[i];
e[i].to=V[i];
e[i].cost=C[i];
G[U[i]].push_back(i);
G[V[i]].push_back(i);
}
spfa();
SPFA(); int ans=;
int Len=dis1[N-];
for(int i=;i<=M;i++)
{
if(dis1[U[i]]+dis2[V[i]]+C[i]==Len||dis2[U[i]]+dis1[V[i]]+C[i]==Len)
ans=ans+C[i]+C[i];
}
printf("%d\n",ans);
}
return ;
}
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 最短路枚举
题目连接: http://acm.hust.edu.cn/vjudge/problem/visitOriginUrl.action?id=129723 题意: 给你一个n点m图的边 1到n有多条最短路 ...
- HNU 13375 Flowery Trails (spfa最短路)
求最短路径覆盖的全部边权值和. 思路:分别从起点和终点两次求最短路,再比较两个点到起点的距离和他们之间的权值相加和是否等于最短路径. 这题很好 #include <cstring> #in ...
- kuangbin带你飞 最短路 题解
求一个图最短路边的办法.好像下面的那个有问题.单向边和双向边一定是有区别的.这个比较容易.参照该文的最短路网络流题目和连通图题目一题求最短路关节边 另外上述2个题目的代码好像有问题. 在UVALIVE ...
- UVALive - 4108 SKYLINE[线段树]
UVALive - 4108 SKYLINE Time Limit: 3000MS 64bit IO Format: %lld & %llu Submit Status uDebug ...
- UVALive - 3942 Remember the Word[树状数组]
UVALive - 3942 Remember the Word A potentiometer, or potmeter for short, is an electronic device wit ...
- UVALive - 3942 Remember the Word[Trie DP]
UVALive - 3942 Remember the Word Neal is very curious about combinatorial problems, and now here com ...
- Codeforces 209 C. Trails and Glades
Vasya went for a walk in the park. The park has n glades, numbered from 1 to n. There are m trails b ...
- CodeForces 209C Trails and Glades
C. Trails and Glades time limit per test 4 seconds memory limit per test 256 megabytes input standar ...
随机推荐
- SharePoint 2013 图文开发系列之列表定义高级篇
转载自 http://www.cnblogs.com/jianyus/p/3484714.html SharePoint列表库,是我们使用过程中最常用的库,下面,我们简单介绍下代码定义自定义列表,主 ...
- 怎样正确设置remote_addr和x_forwarded_for
怎样正确设置remote_addr和x_forwarded_for 2013-04-20 做网站时经常会用到remote_addr和x_forwarded_for这两个头信息来获取客户端的IP,然而当 ...
- 【Machine Learning in Action --4】朴素贝叶斯电子邮件垃圾过滤
摘要:这里用的是词袋模型,即一个词在文档中出现不止一次,每个单词可以出现多次. 1.准备数据:切分文本 前一节过滤网站恶意留言中词向量是给定的,下面介绍如何从文本文档中构建自己的词列表 先举例说明,在 ...
- C# 循环语句
本次主要学习了for循环语句. for循环语句的基本格式是: for(初始条件;循环条件;状态改变) { 循环体; } break——中断循环,跳出循环. continue——停止本次循环,进入下次循 ...
- ajaxpro——js调用后台的方法
前提:添加并引用类库ajaxpro.dll 1.把引用的类库改为自己(如果是自己的话,就不用修改): <%@ Page Language="C#" AutoEventWire ...
- DirectShow音频采集声音不连续问题分析与解决办法经验总结
最近广州大雨不断,并且多数无前兆,突然就来场大雨,给同学们降降温,说来本也是好事,但有时候下的真不是时候,最近这段时间都是即将下班了,大雨就来了,昨晚快下班前又出现了大雨,北方人总爱忘带雨伞,这不就被 ...
- Windows kernel pool 初探(2014.12)
Windows kernel pool 1. 简介 Kernel pool类似于Windows用户层所使用Heap,其为内核组件提供系统资源.在系统初始化的时候,内存管理模块就创建了pool. 严格的 ...
- SpringMVC 学习-入门篇
一.都需要哪些 Jar 包 <dependencies> <dependency> <groupId>org.springframework</groupId ...
- 使用CodeFirst实现动态建库
一.业务分析 以我们平时注册今目标为例,我们在注册今目标的过程中,具体步骤是这样的: 图1 今目标登陆流程 详细解释一下: 第一步:注册界面.输入手机号或者邮箱,点击确定进入基本信息界面. 第二步:基 ...
- iPhone5s 等 64位真机 运行 带有百度地图等 仅支持32位系统API和SDK的问题
将下图中画红色框的部分去掉,程序就不再支持64位了.iPhone5s 将使用它的32位兼容模式.(而不再是64位模式)百度地图也不会报错了.