186. [USACO Oct08] 牧场旅行
157. [USACO Nov07] 奶牛跨栏
186. [USACO Oct08] 牧场旅行
★★ 输入文件:pwalk.in
输出文件:pwalk.out
简单对比时间限制:1 s 内存限制:128 MB
n个被自然地编号为1..n奶牛(1<=n<=1000)正在同样被方便的编号为1..n的n个牧场中吃草。更加自然而方便的是,第i个奶牛就在第i个牧场中吃草。
其中的一些对牧场被总共的n-1条双向通道的一条连接。奶牛可以通过通道。第i条通道连接的两个牧场是A_i和B_i(1<=A_i<=N;1<=B_i<=N)其长度是L_i(1<=L_i<=10000)。
通道只会连接两个不同的牧场,所以这些通道使得整个牧场构成了一棵树。
奶牛们是好交际的希望能够经常的访问别的奶牛。急切地,它们希望你能通过告诉它们Q(1<=Q<=1000)对牧场的路径来帮助他们安排旅行。(这里将有Q个询问,p1,p2(1<=p1<=n;1<=p1<=n))
分数:200
问题名称:pwalk
输入格式:
- 第1行:两个用空格隔开的整数:n和Q
- 第2..n行:第i+1行包含三个用空格隔开的整数:A_i,B_i和L_i
- 第n+1..N+Q行:每行包含两个用空格隔开的整数,代表两个不同的牧场,p1和p2
输入样例(file pwalk.in):
4 2 2 1 2 4 3 2 1 4 3 1 2 3 2
输出格式:
- 第1..Q行:行i包含第i个询问的答案。
输出样例:
2 7
输出说明:
询问1:牧场1和牧场2的路径长度为2。 询问2:3->4->1->2;总长为7。
思路:裸SPFA错误原因:以后数组再开炸了吃屎!!!!!!!!!!!!!!!!!
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #include<queue> 6 using namespace std; 7 const int MAXN=1001; 8 const int maxn=0x7fffffff; 9 struct node 10 { 11 int u; 12 int v; 13 int w; 14 int next; 15 }edge[MAXN]; 16 int num=1; 17 int head[MAXN]; 18 int dis[MAXN]; 19 int n,q; 20 int vis[MAXN]; 21 int spfa(int bg,int ed) 22 { 23 for(int i=1;i<=n;i++)dis[i]=maxn; 24 memset(vis,0,sizeof(vis)); 25 queue<int>q; 26 q.push(bg); 27 dis[bg]=0; 28 vis[bg]=1; 29 while(q.size()!=0) 30 { 31 int p=q.front(); 32 q.pop(); 33 for(int i=head[p];i!=-1;i=edge[i].next) 34 { 35 int to=edge[i].v; 36 if(dis[to]>dis[p]+edge[i].w) 37 { 38 dis[to]=dis[p]+edge[i].w; 39 if(vis[to]==0) 40 { 41 q.push(to); 42 vis[to]=1; 43 } 44 } 45 } 46 } 47 return dis[ed]; 48 } 49 int main() 50 { 51 freopen("pwalk.in","r",stdin); 52 freopen("pwalk.out","w",stdout); 53 scanf("%d%d",&n,&q); 54 for(int i=1;i<=n;i++)head[i]=-1; 55 for(int i=1;i<n;i++) 56 { 57 scanf("%d%d%d",&edge[num].u,&edge[num].v,&edge[num].w); 58 edge[num].next=head[edge[num].u]; 59 head[edge[num].u]=num++; 60 edge[num].v=edge[num-1].u; 61 edge[num].u=edge[num-1].v; 62 edge[num].w=edge[num-1].w; 63 edge[num].next=head[edge[num].u]; 64 head[edge[num].u]=num++; 65 } 66 for(int i=1;i<=q;i++) 67 { 68 int bg; 69 int ed; 70 scanf("%d%d",&bg,&ed); 71 printf("%d\n",spfa(bg,ed)); 72 } 73 return 0; 74 }
186. [USACO Oct08] 牧场旅行相关推荐
- 185. [USACO Oct08] 挖水井
185. [USACO Oct08] 挖水井 ★★ 输入文件:water.in 输出文件:water.out 简单对比 时间限制:1 s 内存限制:128 MB 农夫约翰决定给他的N( ...
- 185.[USACO Oct08] 挖水井 (第三次考试大整理)
185. [USACO Oct08] 挖水井 输入文件:water.in 输出文件:water.out 简单对比 时间限制:1 s 内存限制:128 MB 农夫约翰决定给他的N(1< ...
- USACO - 牛的旅行(Floyd)
USACO - 牛的旅行 题意 农民John的农场里有很多牧区.有的路径连接一些特定的牧区.一片所有连通的牧区称为一个牧场.但是就目前而言,你能看到至少有两个牧区不连通.这样,农民John就有多个牧区 ...
- [USACO Oct08] 挖水井题解
农夫约翰决定给他的N(1<=N<=300)个牧场浇水,这些牧场被自然的命名为1..N.他可以给一个牧场引入水通过在这个牧场挖一口井或者修一条管道使这个牧场和一个已经有水的牧场连接. 在牧场 ...
- 在线倍增法求LCA专题
1.cojs 186. [USACO Oct08] 牧场旅行 ★★ 输入文件:pwalk.in 输出文件:pwalk.out 简单对比 时间限制:1 s 内存限制:128 MB n个被 ...
- usaco Cow Tours 牛的旅行
Cow Tours 牛的旅行 农民 John 的农场里有很多牧区.有的路径连接一些特定的牧区.一片所有连通的牧区称为一个牧场. 但是就目前而言,你能看到至少有两个牧区不连通.这样,农民 John 就有 ...
- BSOJ4217 【USACO 2013 Feburary Gold】旅行线路 DP(双路递推)
4217 -- [USACO 2013 Feburary Gold]旅行线路 Description 贝西经营着一家旅行社,一天贝西带着几队游客沿着亚马逊河旅行,河的两边分布着一些景点,每个景点都对应 ...
- 【USACO 2.3.4】Cow Tours 牛的旅行
题目描述 农民 John的农场里有很多牧区.有的路径连接一些特定的牧区.一片所有连通的牧区称为一个牧场.但是就目前而言,你能看到至少有两个牧场通过任何路径都不连通.这样,Farmer John就有多个 ...
- USACO 2015 January Contest Bronze——奶牛的旅行路线
文章目录 题目描述 输入格式 输出格式 数据范围 输入样例 输出样例 实现代码--奶牛只想走一条路线的情况下 题目描述 厌倦了农场寒冷的冬季天气,奶牛贝茜计划飞往一个温暖的目的地度假. 不幸的是,她发 ...
最新文章
- Cardinality 对执行计划的重要性
- ubuntu 源码安装nginx
- WTMPlus 1.1 发布
- [SpringBoot2]yaml
- 苹果雪豹操作系统正式版_Android 11 正式版发布!
- vue控制台报错Duplicate keys detected: 'xxxx'. This may cause an update error.解决方案
- Kunpeng BoostKit 使能套件:大数据场景如何实现“大鹏一日同风起”倍级性能提升?
- 我的世界手机版javaui材质包_传奇世界中变版手机版下载-传奇世界中变版手机版最新下载...
- 市场营销读后感_好书共赏市场营销原理——带你探索市场营销成功的奥秘 !...
- POJ 1696 Space Ant(点积的应用)
- 【日常技巧】Rufus安装原版win10教程(全流程)
- VLAN划分和网络配置实例
- cppcheck 自定义规则_Cppcheck 用法-编码规范
- 软件工程考研笔记整理(三小时速成)(1)
- 2021第六届数维杯大学生数学建模竞赛题目
- 如何优化小红书笔记?教你三个小技巧,让你快速提高笔记排名
- atan2(a,b)和atan的区别
- 优秀网页翻译:高精度 10MHz GPS 驯服钟 (GPSDO) - Part 1
- 假如我年少有为不自卑
- 常见临近点算子的求解