cogs 176. [USACO Feb07] 奶牛聚会 dijkstra
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的更多相关文章
- SPFA cojs 176. [USACO Feb07] 奶牛聚会
cojs 176. [USACO Feb07] 奶牛聚会 ★☆ 输入文件:sparty.in 输出文件:sparty.out 简单对比时间限制:3 s 内存限制:16 MB N(1 ≤ ...
- 176. [USACO Feb07] 奶牛聚会
#include<iostream> #include<cstdio> #include<cstring> #include<queue> #defin ...
- cogs 141. [USACO Jan08] 奶牛的选举
141. [USACO Jan08] 奶牛的选举 ★ 输入文件:elect.in 输出文件:elect.out 简单对比时间限制:1 s 内存限制:16 MB 在推翻了Farmer J ...
- 157. [USACO Nov07] 奶牛跨栏
157. [USACO Nov07] 奶牛跨栏(点击转到COGS) 输入文件:hurdles.in 输出文件:hurdles.out 时间限制:1 s 内存限制:128 MB 译 by CmY ...
- COGS 163 [USACO Mat07] 牛语
COGS 163 [USACO Mat07] 牛语 输入文件:latin.in 输出文件:latin.out 简单对比 时间限制:1 s 内存限制:128 MB 奶牛们听说猪发明了一种秘密 ...
- 题解 [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 ...
- Cogs 309. [USACO 3.2] 香甜的黄油 dijkstra,堆,最短路,floyd
题目:http://cojs.tk/cogs/problem/problem.php?pid=309 309. [USACO 3.2] 香甜的黄油 ★★ 输入文件:butter.in 输出文件 ...
随机推荐
- Spring Boot笔记之邮件(spring-boot-starter-mail)
Spring Boot环境中发送邮件 pom.xml引入`spring-boot-starter-mail` application.yml配置 163邮箱 QQ邮箱 Gmail邮箱 发送邮件 ser ...
- 21个项目玩转深度学习:基于TensorFlow的实践详解03—打造自己的图像识别模型
书籍源码:https://github.com/hzy46/Deep-Learning-21-Examples CNN的发展已经很多了,ImageNet引发的一系列方法,LeNet,GoogLeNet ...
- Codeforces Round #564 (Div. 2) D. Nauuo and Circle(树形DP)
D. Nauuo and Circle •参考资料 [1]:https://www.cnblogs.com/wyxdrqc/p/10990378.html •题意 给出你一个包含 n 个点的树,这 n ...
- SDNU ACM-ICPC 2019 Competition For the End of Term(12-15)山师停训赛题解
马鸿儒 目前已补:01 03 06 07 08 09 10 11目前未补:02 04 05 12 苏用 1582.柳予欣的舔狗行为 1587.柳予欣的女朋友们在分享水果 1585.柳予欣和她女朋友的购 ...
- linux 一次对一个用户限制存取
单打开设备之外的下一步是使一个用户在多个进程中打开一个设备, 但是一次只允许一个 用户打开设备. 这个解决方案使得容易测试设备, 因为用户一次可从几个进程读写, 但是 假定这个用户负责维护在多次存取中 ...
- IDEA开发 工具IC和IU的区别
现在很多人都在用IDEA开发工具,那么下载安装时会有ideaIU和ideaIC两个版本,到底该怎么选择呢? 首先: ideaIU:U代表的是Ultimate,这个是官方旗舰版也就是商用版本,官方只提供 ...
- jquery自己写的幻灯片插件,好用不解释
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Linux内核 结构 struct urb
struct urb 结构中和 USB 设备驱动有关的成员是: struct usb_device *dev 指向这个 urb 要发送到的 struct usb_device 的指针. 这个变量必须被 ...
- vue-learning:11 -js-nextTick()
nextTick() 在jQuery中,如果我们要生成一个ul-li的列表元素,我们也不会在循环体中每生成一个li就将它插入到ul中,而是在循环体内拼接每个li,待循环体结束后,再一并添加到ul元素上 ...
- ideaic快捷键
Intellij IDEA中有很多快捷键让人爱不释手,stackoverflow上也有一些有趣的讨论.每个人都有自己的最爱,想排出个理想的榜单还真是困难.以前也整理过Intellij的快捷键,这次就按 ...