洛谷——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), 每一棵树上都长满了苹果.奶牛贝茜无法摘下树上的苹果,所以她只能等待苹果 从 ...
随机推荐
- UnicodeEncodeError:'latin-1' codec can't encode character
UnicodeEncodeError:'latin-1' codec can't encode character
- mystr = '{}{}{}'.format(mystr, random.randint(0, 9), adurl)
mystr = '{}{}{}'.format(mystr, random.randint(0, 9), adurl)
- json返序列化
ASP.NET中JSON的序列化和反序列化 http://www.cnblogs.com/zhaozhan/archive/2011/01/09/1931340.html 迟来的Json反序列化 ht ...
- js 本地存储 localStorage 之 angular
今天项目中用到 php yii框架 用的不是 angular路由 所以用rootScope传值是不行的 我就用到了 localStorage 本地持久化存储 如下 set 顾名思义是设置 值 loca ...
- robotframework - Edit编辑器
1.测试项目&套件 提供的Edit编辑器 2.在 Edit 标签页中主要分:加载外部文件.定义内部变量.定义元数据等三个部分. (1):加载外部文件Add Library:加载测试库,主要是[ ...
- 使用wkwebview后,页面返回不刷新的问题
onpageshow 事件在用户浏览网页时触发. onpageshow 事件类似于 onload 事件,onload 事件在页面第一次加载时触发, onpageshow 事件在每次加载页面时触发,即 ...
- Spring MVC过滤器-HiddenHttpMethodFilter
参考来源:http://blog.csdn.net/geloin/article/details/7444321 浏览器form表单只支持GET与POST请求,而DELETE.PUT等method并不 ...
- python批量删除文件夹
制作的python程序跑一次就占200多内存在temp下面,关键是还不释放,最开始都没有发现这个问题,知道自己的c盘越来越小才发现问题所在.所以就有了去删除temp下生成的文件 代码如下: impor ...
- 转载pcb设计详细版
http://www.51hei.com/bbs/dpj-52438-1.html 详细的altium designer制作PCB步骤,按照步骤一步步的学习就会自己制作PCB模型 目 录 实验三 层 ...
- Ajax异步刷新省市级联
省市级联在web前端用户注册使用非常广泛.Ajax异步刷新省市级联.如图:选择不同的区,自动加载相应的街. <TD class=field>位 置:</TD> <TD&g ...