176. [USACO Feb07] 奶牛聚会

★☆   输入文件:sparty.in   输出文件:sparty.out   简单对比
时间限制:3 s   内存限制:16 MB

译: zqzas

N(1 ≤ N ≤ 1000)个农场中的每个农场都有一只奶牛去参加位于第X个农场的聚会.共有M (1 ≤ M ≤ 100,000)条单向的道路,每条道路连接一对农场.通过道路i会花费Ti (1 ≤ Ti ≤ 100)的时间.

作为参加聚会的奶牛必须走到聚会的所在地(农场X).当聚会结束时,还要返回各自的农场.奶牛都是很懒的,她们想找出花费时间最少的路线.由于道路都是单向的,所有她们前往农场X的路线可能会不同于返程的路线.

Of all the cows, what is the longest amount of time a cow must spend walking to the party and back? 对于所有参加聚会的奶牛,找出前往聚会和返程花费总时间最多的奶牛,输出这只奶牛花费的总时间.

输入格式:

  • 第1行:三个用空格隔开的整数.

第2行到第M+1行,每行三个用空格隔开的整数:Ai, Bi,以及Ti.表示一条道路的起点,终点和需要花费的时间.

输出格式:

  • 唯一一行:一个整数: 所有参加聚会的奶牛中,需要花费总时间的最大值.

样例输出:

4 8 2
1 2 4
1 3 2
1 4 7
2 1 1
2 3 5
3 1 2
3 4 4
4 2 3

样例输入:

10

样例说明:

共有4只奶牛参加聚会,有8条路,聚会位于第2个农场.

第4只奶牛可以直接到聚会所在地(花费3时间),然后返程路线经过第1和第3个农场(花费7时间),总共10时间.

我猜这一道题(可能)很简单<<不要相信我的胡言

自认为这一道题就是正反跑两遍dijkstra就行啦~

然后找两个dis和最大的QAQ 天哪

这一道题的数据范围看起来好可怕的样子

dijkstra是m logm    m是10万(像是能卡过的样子<<肯定能啊)  来吧~

正反建边 一遍水过!

#include<bits/stdc++.h>
#define maxn 1005
#define pa pair<int,int>
using namespace std;
int n,m,p;
vector<int> v[maxn],w[maxn];
vector<int> v2[maxn],w2[maxn];
int dis2[maxn],vis2[maxn];
int dis[maxn],vis[maxn];
priority_queue<pa,vector<pa>,greater<pa> > q;
void Dijkstra()//back
{
memset(dis,0x3f,sizeof(dis));
memset(vis,,sizeof(vis));
dis[p]=;
q.push(make_pair(,p));
while(!q.empty())
{
int x=q.top().second;
q.pop();
if(vis[x])
continue;
vis[x]=;
for(int i=;i<v[x].size();i++)
{
int y=v[x][i];
int val=w[x][i];
if(dis[y]>dis[x]+val)
{
dis[y]=dis[x]+val;
q.push(make_pair(dis[y],y)); }
}
}
}
void Dijkstra2()//to_p
{
memset(dis2,0x3f,sizeof(dis2));
memset(vis2,,sizeof(vis2));
dis2[p]=;
q.push(make_pair(,p));
while(!q.empty())
{
int x=q.top().second;
q.pop();
if(vis2[x])
continue;
vis2[x]=;
for(int i=;i<v2[x].size();i++)
{
int y=v2[x][i];
int val=w2[x][i];
if(dis2[y]>dis2[x]+val)
{
dis2[y]=dis2[x]+val;
q.push(make_pair(dis2[y],y)); }
}
}
}
int main()
{
freopen("sparty.in","r",stdin);
freopen("sparty.out","w",stdout);
scanf("%d%d%d",&n,&m,&p);
for(int i=;i<=m;i++)
{
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
v[x].push_back(y);
w[x].push_back(z); v2[y].push_back(x);
w2[y].push_back(z);
}
Dijkstra();
Dijkstra2();
int Max=-;
for(int i=;i<=n;i++)
Max=max(Max,dis[i]+dis2[i]);
printf("%d",Max);
return ;
}

♪(^∇^*)

cogs 176. [USACO Feb07] 奶牛聚会 dijkstra的更多相关文章

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

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

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

    #include<iostream> #include<cstdio> #include<cstring> #include<queue> #defin ...

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

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

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

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

  5. COGS 163 [USACO Mat07] 牛语

    COGS 163 [USACO Mat07] 牛语 输入文件:latin.in   输出文件:latin.out   简单对比 时间限制:1 s   内存限制:128 MB 奶牛们听说猪发明了一种秘密 ...

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

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

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

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

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

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

  9. Cogs 309. [USACO 3.2] 香甜的黄油 dijkstra,堆,最短路,floyd

    题目:http://cojs.tk/cogs/problem/problem.php?pid=309 309. [USACO 3.2] 香甜的黄油 ★★   输入文件:butter.in   输出文件 ...

随机推荐

  1. FtpService [windows] 配置

    ---恢复内容开始--- 1. 启动FtpService 2. 增加ftp用户 1) 复制ftpd.bat,重命名为adduser.bat 2) 把set MAIN_CLASS=org.apache. ...

  2. 高可用之nginx配置文件详解

    #user nobody; worker_processes 1;##工作线程数,一般和cpu的核数相同:可通过ps -ef | nginx查看线程数 #配置错误日志位置 #error_log log ...

  3. H3C 单区域OSPF配置示例二

  4. Django入门6--Django超链接

  5. 【js】 vue 2.5.1 源码学习(五) props directives规范化 props 合并策略

    大体思路 (四) 上节回顾: A: 对于生命周期函数将父子组件的函数放到一个数组里面,特定时间点调用,保证父子组件函数都调用到. B: 对于directive,filters,components 等 ...

  6. P1076 单词覆盖还原

    题目描述 一个长度为 \(l(3\le l\le 255)\) 的字符串中被反复贴有 boy 和 girl 两单词,后贴上的可能覆盖已贴上的单词(没有被覆盖的用句点表示),最终每个单词至少有一个字符没 ...

  7. 原生js重写each方法

    js原生有个for-each方法,但是只能遍历数组不能遍历对象; jq有个$.each倒是可以遍历数组和对象,但是项目中如果不想用jq呢,我们就用原生来写一个吧. [12,23,34].forEach ...

  8. HDU 2899 Strange fuction [二分]

    1.题意:给一个函数F(X)的表达式,求其最值,自变量定义域为0到100 2.分析:写出题面函数的导函数的表达式,二分求导函数的零点,对应的就是极值点 3.代码: # include <iost ...

  9. 谈谈模型融合之一 —— 集成学习与 AdaBoost

    前言 前面的文章中介绍了决策树以及其它一些算法,但是,会发现,有时候使用使用这些算法并不能达到特别好的效果.于是乎就有了集成学习(Ensemble Learning),通过构建多个学习器一起结合来完成 ...

  10. 第二阶段:2.商业需求分析及BRD:7.商业需求文档3

    BRD模版 阐述需求来源以及调研分析情况 百度指数工具.定量的数据.发展趋势,是否与公司的战略冲突.环境政策:比如做内容的运营. 决策层看重的! 第二大块. 通过什么方式解决这个需求. 规划能力.类似 ...