#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] 奶牛聚会的更多相关文章

  1. SPFA cojs 176. [USACO Feb07] 奶牛聚会

    cojs 176. [USACO Feb07] 奶牛聚会 ★☆   输入文件:sparty.in   输出文件:sparty.out   简单对比时间限制:3 s   内存限制:16 MB N(1 ≤ ...

  2. cogs 176. [USACO Feb07] 奶牛聚会 dijkstra

    176. [USACO Feb07] 奶牛聚会 ★☆   输入文件:sparty.in   输出文件:sparty.out   简单对比时间限制:3 s   内存限制:16 MB 译: zqzas N ...

  3. 157. [USACO Nov07] 奶牛跨栏

    157. [USACO Nov07] 奶牛跨栏(点击转到COGS) 输入文件:hurdles.in   输出文件:hurdles.out 时间限制:1 s   内存限制:128 MB 译 by CmY ...

  4. cogs 141. [USACO Jan08] 奶牛的选举

    141. [USACO Jan08] 奶牛的选举 ★   输入文件:elect.in   输出文件:elect.out   简单对比时间限制:1 s   内存限制:16 MB 在推翻了Farmer J ...

  5. 题解 [USACO Mar08] 奶牛跑步

    [USACO Mar08] 奶牛跑步 Description Bessie准备用从牛棚跑到池塘的方法来锻炼. 但是因为她懒,她只准备沿着下坡的路跑到池塘,然后走回牛棚. Bessie也不想跑得太远,所 ...

  6. cogs157. [USACO Nov07] 奶牛跨栏 x

    157. [USACO Nov07] 奶牛跨栏 ★★   输入文件:hurdles.in   输出文件:hurdles.out   简单对比时间限制:1 s   内存限制:128 MB 译 by Cm ...

  7. 157. [USACO Nov07] 奶牛跨栏(第三次考试大整理)

    157. [USACO Nov07] 奶牛跨栏 输入文件:hurdles.in   输出文件:hurdles.out   简单对比 时间限制:1 s   内存限制:128 MB 译 by CmYkRg ...

  8. usaco 地震 && 奶牛观光

    Usaco 地震: Description 一场地震把约翰家的牧场摧毁了,坚强的约翰决心重建家园.约翰已经重建了N个牧场, 现在他希望能修建一些道路把它们连接起来.研究地形之后,约翰发现可供修建的道路 ...

  9. usaco 安慰奶牛

    Description 约翰有N个牧场,编号依次为1到N.每个牧场里住着一头奶牛.连接这些牧场的有P条 道路,每条道路都是双向的.第j条道路连接的是牧场Sj和Ej,通行需要Lj的时间.两牧场之 间最多 ...

随机推荐

  1. iOS 取得CGimage字节数据的方法

    通过我在网上搜索和总结,目前看来,我发现两种比较方便的方式. 1. CGImage -> CGDataProvider -> CFData -> xx * CGDataProvide ...

  2. js两个时间相减

    平常总会遇到需要算两个日期之间是多少天,以下是使用JavaScript算时间差多少天的: // 给日期类对象添加日期差方法,返回日期与diff参数日期的时间差,单位为天 Date.prototype. ...

  3. 利用TraceSource写日志

    利用TraceSource写日志 从微软推出第一个版本的.NET Framework的时候,就在“System.Diagnostics”命名空间中提供了Debug和Trace两个类帮助我们完成针对调试 ...

  4. Servlet常用类

    javax.servlet.ServletConfig;javax.servlet.ServletException;javax.servlet.http.HttpServlet;javax.serv ...

  5. 转:如何找出发生SEGV内存错误的程序

    原文来自于:http://www.searchtb.com/2014/03/%E5%A6%82%E4%BD%95%E6%89%BE%E5%87%BA%E5%8F%91%E7%94%9Fsegv%E5% ...

  6. 【译】UI设计基础(UI Design Basics)--iOS应用解析(iOS App Anatomy)(三)

    2.1  iOS应用解析(iOS App Anatomy) 几乎所有的iOS应用都会用到UIKit框架中的组件.了解这些基础组件的名称,角色,功能可以帮你在应用界面设计时做出更好的决策. UIKit提 ...

  7. 专家解读Linux操作系统内核中的GCC特性

    专家解读Linux操作系统内核中的GCC特性   Linux内核使用GNU Compiler Collection (GCC)套件的几个特殊功能.这些功能包括提供快捷方式和简化以及向编译器提供优化提示 ...

  8. 【Java】Java 序列化的高级认识

    如果你只知道实现 Serializable 接口的对象,可以序列化为本地文件.那你最好再阅读该篇文章,文章对序列化进行了更深一步的讨论,用实际的例子代码讲述了序列化的高级认识,包括父类序列化的问题.静 ...

  9. check sql server edition (version 版本)

    SELECT @@VERSION refer : https://www.mssqltips.com/sqlservertip/1140/how-to-tell-what-sql-server-ver ...

  10. Mondriaan's Dream

    poj2411:http://poj.org/problem?id=2411 题意:给你1*2的方块,让你把n*m的房间填好有多少种方式. 题解:状压dp.这一题,我是不会做了,看懂了题解之后,震惊了 ...