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的时间.两牧场之 间最多 ...
随机推荐
- iOS 取得CGimage字节数据的方法
通过我在网上搜索和总结,目前看来,我发现两种比较方便的方式. 1. CGImage -> CGDataProvider -> CFData -> xx * CGDataProvide ...
- js两个时间相减
平常总会遇到需要算两个日期之间是多少天,以下是使用JavaScript算时间差多少天的: // 给日期类对象添加日期差方法,返回日期与diff参数日期的时间差,单位为天 Date.prototype. ...
- 利用TraceSource写日志
利用TraceSource写日志 从微软推出第一个版本的.NET Framework的时候,就在“System.Diagnostics”命名空间中提供了Debug和Trace两个类帮助我们完成针对调试 ...
- Servlet常用类
javax.servlet.ServletConfig;javax.servlet.ServletException;javax.servlet.http.HttpServlet;javax.serv ...
- 转:如何找出发生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% ...
- 【译】UI设计基础(UI Design Basics)--iOS应用解析(iOS App Anatomy)(三)
2.1 iOS应用解析(iOS App Anatomy) 几乎所有的iOS应用都会用到UIKit框架中的组件.了解这些基础组件的名称,角色,功能可以帮你在应用界面设计时做出更好的决策. UIKit提 ...
- 专家解读Linux操作系统内核中的GCC特性
专家解读Linux操作系统内核中的GCC特性 Linux内核使用GNU Compiler Collection (GCC)套件的几个特殊功能.这些功能包括提供快捷方式和简化以及向编译器提供优化提示 ...
- 【Java】Java 序列化的高级认识
如果你只知道实现 Serializable 接口的对象,可以序列化为本地文件.那你最好再阅读该篇文章,文章对序列化进行了更深一步的讨论,用实际的例子代码讲述了序列化的高级认识,包括父类序列化的问题.静 ...
- check sql server edition (version 版本)
SELECT @@VERSION refer : https://www.mssqltips.com/sqlservertip/1140/how-to-tell-what-sql-server-ver ...
- Mondriaan's Dream
poj2411:http://poj.org/problem?id=2411 题意:给你1*2的方块,让你把n*m的房间填好有多少种方式. 题解:状压dp.这一题,我是不会做了,看懂了题解之后,震惊了 ...