洛谷——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), 每一棵树上都长满了苹果.奶牛贝茜无法摘下树上的苹果,所以她只能等待苹果 从 ...
随机推荐
- Message: unknown error: Element is not clickable at point
Message: unknown error: Element is not clickable at point google chrome - Debugging "Element is ...
- JavaScript中的string interpolation
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals var a = 5; var b ...
- 【158】◀▶ Linux-Bash学习
鸟哥的 Linux 私房菜 Linux 的 26 个命令 Shell 脚本教程 Linux 命令大全 目录——按文件顺序: echo:显示变量内容 printf:格式化输 ...
- Eclipse导入Java 的jar包的方法
打开eclipse1.右击要导入jar包的项目,点properties 2.左边选择java build path,右边选择libraries 3.选择add External jars 4.选择ja ...
- /bin/bash: jar: command not found(转载)
转自:http://blog.csdn.net/zhangdaiscott/article/details/23138023 /bin/bash: jar: command not found 解决办 ...
- MySQL 循环分支语法
---恢复内容开始--- Loop循环 label: LOOP statement_list IF exit_condition THEN LEAVE label; END IF; END LOOP ...
- Python网咯爬虫 — Scrapy框架应用
Scrapy框架 Scrapy是一个高级的爬虫框架,它不仅包括了爬虫的特征,还可以方便地将爬虫数据保存到CSV.Json等文件中. Scrapy用途广泛,可以用于数据挖掘.监测 ...
- 三分 HDOJ 3714 Error Curves
题目传送门 /* 三分:凹(凸)函数求极值 */ #include <cstdio> #include <algorithm> #include <cstring> ...
- 题解报告:hdu 1010 Tempter of the Bone
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1010 Problem Description The doggie found a bone in a ...
- 【转】数据倾斜是多么痛?spark作业/面试/调优必备秘籍
原博文出自于: http://sanwen.net/a/gqkotbo.html 感谢! 来源:数盟 调优概述 有的时候,我们可能会遇到大数据计算中一个最棘手的问题——数据倾斜,此时Spark作业的性 ...