176. [USACO Feb07] 奶牛聚会
#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#define maxn 100010
using namespace std;
int n,m,T,num1,num2,head1[maxn],head2[maxn],dis1[maxn],dis2[maxn],f[maxn];
queue<int>q1;
queue<int>q2;
int ans[maxn],maxx;
struct node
{
int u,v,t,pre;
}e1[maxn];
struct Node
{
int u,v,t,pre;
}e2[maxn];
int init()
{
int x=;char s;s=getchar();
while(s<''||s>'')s=getchar();
while(s>=''&&s<=''){x=x*+s-'';s=getchar();}
return x;
}
void Add1(int from,int to,int dis)
{
num1++;
e1[num1].u=from;
e1[num1].v=to;
e1[num1].t=dis;
e1[num1].pre=head1[from];
head1[from]=num1;
}
void Add2(int from,int to,int dis)
{
num2++;
e2[num2].u=from;
e2[num2].v=to;
e2[num2].t=dis;
e2[num2].pre=head2[from];
head2[from]=num2;
}
void SPFA1()
{
dis1[T]=;
q1.push(T);
f[T]=;
while(!q1.empty())
{
int k=q1.front();
q1.pop();
f[k]=;
for(int i=head1[k];i;i=e1[i].pre)
if(dis1[e1[i].v]>dis1[k]+e1[i].t)
{
dis1[e1[i].v]=dis1[k]+e1[i].t;
if(f[e1[i].v]==)
{
f[e1[i].v]=;
q1.push(e1[i].v);
}
}
}
}
void SPFA2()
{
dis2[T]=;
q2.push(T);
f[T]=;
while(!q2.empty())
{
int k=q2.front();
q2.pop();
f[k]=;
for(int i=head2[k];i;i=e2[i].pre)
if(dis2[e2[i].v]>dis2[k]+e2[i].t)
{
dis2[e2[i].v]=dis2[k]+e2[i].t;
if(f[e2[i].v]==)
{
f[e2[i].v]=;
q2.push(e2[i].v);
}
}
}
}
int main()
{
//freopen("sparty.in","r",stdin);
//freopen("sparty.out","w",stdout);
int x,y,z;
n=init();m=init();T=init();
for(int i=;i<=m;i++)
{
x=init();y=init();z=init();
Add2(x,y,z);Add1(y,x,z);
}
memset(dis1,/,sizeof(dis1));
memset(dis2,/,sizeof(dis2));
SPFA1();
memset(f,,sizeof(f));
SPFA2();
for(int i=;i<=n;i++)
ans[i]=dis1[i]+dis2[i];
for(int i=;i<=n;i++)
maxx=max(maxx,ans[i]);
printf("%d\n",maxx);
return ;
}
176. [USACO Feb07] 奶牛聚会的更多相关文章
- SPFA cojs 176. [USACO Feb07] 奶牛聚会
cojs 176. [USACO Feb07] 奶牛聚会 ★☆ 输入文件:sparty.in 输出文件:sparty.out 简单对比时间限制:3 s 内存限制:16 MB N(1 ≤ ...
- cogs 176. [USACO Feb07] 奶牛聚会 dijkstra
176. [USACO Feb07] 奶牛聚会 ★☆ 输入文件:sparty.in 输出文件:sparty.out 简单对比时间限制:3 s 内存限制:16 MB 译: zqzas N ...
- 157. [USACO Nov07] 奶牛跨栏
157. [USACO Nov07] 奶牛跨栏(点击转到COGS) 输入文件:hurdles.in 输出文件:hurdles.out 时间限制:1 s 内存限制:128 MB 译 by CmY ...
- cogs 141. [USACO Jan08] 奶牛的选举
141. [USACO Jan08] 奶牛的选举 ★ 输入文件:elect.in 输出文件:elect.out 简单对比时间限制:1 s 内存限制:16 MB 在推翻了Farmer J ...
- 题解 [USACO Mar08] 奶牛跑步
[USACO Mar08] 奶牛跑步 Description Bessie准备用从牛棚跑到池塘的方法来锻炼. 但是因为她懒,她只准备沿着下坡的路跑到池塘,然后走回牛棚. Bessie也不想跑得太远,所 ...
- cogs157. [USACO Nov07] 奶牛跨栏 x
157. [USACO Nov07] 奶牛跨栏 ★★ 输入文件:hurdles.in 输出文件:hurdles.out 简单对比时间限制:1 s 内存限制:128 MB 译 by Cm ...
- 157. [USACO Nov07] 奶牛跨栏(第三次考试大整理)
157. [USACO Nov07] 奶牛跨栏 输入文件:hurdles.in 输出文件:hurdles.out 简单对比 时间限制:1 s 内存限制:128 MB 译 by CmYkRg ...
- usaco 地震 && 奶牛观光
Usaco 地震: Description 一场地震把约翰家的牧场摧毁了,坚强的约翰决心重建家园.约翰已经重建了N个牧场, 现在他希望能修建一些道路把它们连接起来.研究地形之后,约翰发现可供修建的道路 ...
- usaco 安慰奶牛
Description 约翰有N个牧场,编号依次为1到N.每个牧场里住着一头奶牛.连接这些牧场的有P条 道路,每条道路都是双向的.第j条道路连接的是牧场Sj和Ej,通行需要Lj的时间.两牧场之 间最多 ...
随机推荐
- python模块之hashlib加密
40.加密模块:hashlib 1. >>> import hashlib >>> ret1 = hashlib.md5() ...
- ios CAF音频转换为MP3
Url:http://blog.csdn.net/ysy441088327/article/details/7392842#reply 为了达到 iPhone 与 Android 实现音频互通. 那么 ...
- shuffle机制和TextInputFormat分片和读取分片数据(九)
shuffle机制 1:每个map有一个环形内存缓冲区,用于存储任务的输出.默认大小100MB(io.sort.mb属性),一旦达到阀值0.8(io.sort.spill.percent),一个后台线 ...
- NSValue NSNumber NSData类
NSValue NSNumber NSData类 步骤1 NSValue 我们先看看NSValue能做什么: 一个NSValue对象是用来存储一个C或者Objective-C数据的简单容器.它可以保存 ...
- c++ smart pointer
智能指针(smart pointer)是存储指向动态分配(堆)对象指针的类,用于生存期控制,能够确保自动正确的销毁动态分配的对象,防止内存泄露.它的一种通用实现技术是使用引用计数(reference ...
- SORT ORDER BY STOPKEY
select * from ( select * from ( select a.*,rownum rn from page a where object_id >1000 and owner= ...
- Unity 使用BMFont制作字体
参考链接:http://blog.csdn.net/huang9012/article/details/32333913,作者:CSDN huang9012 NGUI版本:3.6.5 要自己制作字体, ...
- 【树状数组】CSU 1811 Tree Intersection (2016湖南省第十二届大学生计算机程序设计竞赛)
题目链接: http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1811 题目大意: 一棵树,N(2<=N<=105)个节点,每个节点有一种颜 ...
- 【动态规划】Codeforces 698A & 699C Vacations
题目链接: http://codeforces.com/problemset/problem/698/A http://codeforces.com/problemset/problem/699/C ...
- Unity Dx9 Occlusion Query plugin
//Occlusion Unity plugin #include "UnityPluginInterface.h" #include <math.h>#include ...