洛谷——P3003 [USACO10DEC]苹果交货Apple Delivery
P3003 [USACO10DEC]苹果交货Apple Delivery
这题没什么可说的,跑两遍单源最短路就好了
$Spfa$过不了,要使用堆优化的$dijkstra$
细节:1.必须使用优先队列+堆
2.更新方式跟$Spfa$有所不同
#include<bits/stdc++.h>
using namespace std;
void in(int &x){
register char c=getchar();x=;int f=;
while(!isdigit(c)){if(c=='-') f=-;c=getchar();}
while(isdigit(c)){x=x*+c-'';c=getchar();}
x*=f;
}
int c,p,p_b,pa_1,pa_2,head[],vis[],d[],tot,ans;
struct node{
int to,dis,pre;
}e[];
void add(int u,int v,int w){
e[++tot].to=v;e[tot].pre=head[u];head[u]=tot;e[tot].dis=w;
}
struct npde{
int to,dis;
bool operator < (const npde &x) const{
return dis>x.dis;
}
};
priority_queue<npde>Q;
void spfa(int s){
while(!Q.empty()) Q.pop();
memset(vis,,sizeof(vis));memset(d,0x7f,sizeof(d));
d[s]=;Q.push((npde){s,});
while(!Q.empty()){
int u=Q.top().to;Q.pop();
if(vis[u]) continue;
vis[u]=;
for(int i=head[u],v;v=e[i].to,i;i=e[i].pre){
if(d[v]>d[u]+e[i].dis){
d[v]=d[u]+e[i].dis;
Q.push((npde){v,d[v]});
}
}
}
}
int main()
{
in(c),in(p),in(p_b),in(pa_1),in(pa_2);
for(int i=;i<=c;i++){
int u,v,w;
in(u),in(v),in(w);
add(u,v,w);add(v,u,w);
}spfa(p_b);
if(d[pa_1]<d[pa_2])ans+=d[pa_1],spfa(pa_1),ans+=d[pa_2];
else ans+=d[pa_2],spfa(pa_2),ans+=d[pa_1];
printf("%d\n",ans);
return ;
}
洛谷——P3003 [USACO10DEC]苹果交货Apple Delivery的更多相关文章
- 洛谷 P3003 [USACO10DEC]苹果交货Apple Delivery
洛谷 P3003 [USACO10DEC]苹果交货Apple Delivery 题目描述 Bessie has two crisp red apples to deliver to two of he ...
- 洛谷P3003 [USACO10DEC]苹果交货Apple Delivery
P3003 [USACO10DEC]苹果交货Apple Delivery 题目描述 Bessie has two crisp red apples to deliver to two of her f ...
- P3003 [USACO10DEC]苹果交货Apple Delivery
题目描述 Bessie has two crisp red apples to deliver to two of her friends in the herd. Of course, she tr ...
- Dijkstra【p3003(bzoj2100)】[USACO10DEC]苹果交货Apple Delivery
Description 贝西有两个又香又脆的红苹果要送给她的两个朋友.当然她可以走的C(1<=C<=200000)条"牛路"都被包含在一种常用的图中,包含了P(1< ...
- luoguP3003 [USACO10DEC]苹果交货Apple Delivery
LOL新英雄卡莎点击就送 一句话题意: 三个点a1,a2,b,求从b到a1和a2的最短路 做法:求出a1->b和a2->b的最短路,两者取min,之后再加上a1->a2的最短路 为啥 ...
- 洛谷P3003 苹果交货Apple Delivery
题目描述 贝西有两个又香又脆的红苹果要送给她的两个朋友.当然她可以走的\(C(1 \leq C \leq 200000)\)条"牛路"都被包含在一种常用的图中,包含了\(P(1 \ ...
- 洛谷P3004 [USACO10DEC]宝箱Treasure Chest
P3004 [USACO10DEC]宝箱Treasure Chest 题目描述 Bessie and Bonnie have found a treasure chest full of marvel ...
- 洛谷——P2386 放苹果
P2386 放苹果 题目背景 (poj1664) 题目描述 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分发(5,1,1和1,1,5是同一种方法) 输入输出格式 输入 ...
- 洛谷——P2690 接苹果
P2690 接苹果 题目背景 USACO 题目描述 很少有人知道奶牛爱吃苹果.农夫约翰的农场上有两棵苹果树(编号为1和2), 每一棵树上都长满了苹果.奶牛贝茜无法摘下树上的苹果,所以她只能等待苹果 从 ...
随机推荐
- 【Poj1090】Chain
Chain Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 3414 Accepted: 1126 Description ...
- 关于flask的错误:ImportError: cannot import name 'Flask'
刚开始接触flask,新创建后不能运行,报错如下图: 导致该错误有两种可能,没安装flask:文件名为flask. 可尝试如下两种方法解决: 方法一:若没安装过flask,则进入cmd,输入pip i ...
- bzoj1415 [Noi2005]聪聪和可可——概率期望
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1415 看博客:http://www.cnblogs.com/Narh/p/9206642.h ...
- 短链接及关键字过滤ac自动机设计思路
=============:短链接设计思路:核心:将长字符转为短字符串并建立映射关系,存储redis中.1.使用crc32转换为Long 2.hashids将long encode为最短字符串.作为短 ...
- 转载使用 ContentObsever 拦截短信,获取短信内容
在一些应用上,比如手机银行,QQ,微信等,很多时候我们都需要通过发送验证码到手机上,然后把验证码填上去,然后才能成功地继续去做下面一步事情. 而如果每次我们都要离开当前界面,然后去查收短信,记住验证码 ...
- mutiset HDOJ 5349 MZL's simple problem
题目传送门 /* 这题可以用stl的mutiset容器方便求解,我对这东西不熟悉,TLE了几次,最后用读入外挂水过. 题解有O(n)的做法,还以为我是侥幸过的,后来才知道iterator it写在循环 ...
- bnu 51640 Training Plan DP
https://www.bnuoj.com/bnuoj/problem_show.php?pid=51640 dp[i][j]表示前j个数,分成了i组,最小需要多少精力. 那么,求解订票dp[i][j ...
- scala学习笔记3:基本控制结构基础
以下主要记录的是看完scala in programming这本书buildin control structures(第七章)后的要点总结. 1,if,while,do while和for的用法和j ...
- Python_购物车问题
import os goods = [ {"name": "电脑", "price": 1999}, {"name&q ...
- 文档声明和HTML样式表
文档声明 不是注释也不是元素,总是在HTML的第一行 书写格式:<!DOCTYPE HTML> 是用于通知浏览器目前文档正使用哪一个HTML版本(相关属性 lang) 若不写文档声明,浏览 ...