[BZOJ 2100] Apple Delivery
[题目链接]
https://www.lydsy.com/JudgeOnline/problem.php?id=2100
[算法]
Answer = min{ dist(PB,PA1) + dist(PA1,PA2) , dist(PB,PA2) + dist(PA1,PA2) } (其中,dist表示最短路)
对PB和PA1分别求两次最短路即可,注意要使用dijkstra算法(堆优化)
[代码]
#include<bits/stdc++.h>
using namespace std;
#define MAXP 100010
#define MAXC 200010 struct edge
{
int to,w,nxt;
} e[MAXC << ]; int i,C,P,PA1,PA2,PB,u,v,w,tot;
int head[MAXP],dist1[MAXP],dist2[MAXP]; inline void addedge(int u,int v,int w)
{
tot++;
e[tot] = (edge){v,w,head[u]};
head[u] = tot;
}
inline void dijkstra1()
{
int i,cur,v,w;
static bool visited[MAXP];
priority_queue< pair<int,int> > q;
memset(visited,false,sizeof(visited));
memset(dist1,0x3f,sizeof(dist1));
dist1[PB] = ;
q.push(make_pair(,PB));
while (!q.empty())
{
cur = q.top().second;
q.pop();
if (visited[cur]) continue;
visited[cur] = true;
for (i = head[cur]; i; i = e[i].nxt)
{
v = e[i].to;
w = e[i].w;
if (dist1[cur] + w < dist1[v])
{
dist1[v] = dist1[cur] + w;
q.push(make_pair(-dist1[v],v));
}
}
}
}
inline void dijkstra2()
{
int i,cur,v,w;
static bool visited[MAXP];
priority_queue< pair<int,int> > q;
memset(visited,false,sizeof(visited));
memset(dist2,0x3f,sizeof(dist1));
dist2[PA1] = ;
q.push(make_pair(,PA1));
while (!q.empty())
{
cur = q.top().second;
q.pop();
if (visited[cur]) continue;
visited[cur] = true;
for (i = head[cur]; i; i = e[i].nxt)
{
v = e[i].to;
w = e[i].w;
if (dist2[cur] + w < dist2[v])
{
dist2[v] = dist2[cur] + w;
q.push(make_pair(-dist2[v],v));
}
}
}
}
int main()
{ scanf("%d%d%d%d%d",&C,&P,&PB,&PA1,&PA2);
for (i = ; i <= C; i++)
{
scanf("%d%d%d",&u,&v,&w);
addedge(u,v,w);
addedge(v,u,w);
}
dijkstra1();
dijkstra2();
printf("%d\n",min(dist1[PA1] + dist2[PA2],dist1[PA2] + dist2[PA2])); return ; }
[BZOJ 2100] Apple Delivery的更多相关文章
- BZOJ 2100: [Usaco2010 Dec]Apple Delivery( 最短路 )
跑两遍最短路就好了.. 话说这翻译2333 ---------------------------------------------------------------------- #includ ...
- 洛谷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
P3003 [USACO10DEC]苹果交货Apple Delivery 这题没什么可说的,跑两遍单源最短路就好了 $Spfa$过不了,要使用堆优化的$dijkstra$ 细节:1.必须使用优先队列+ ...
- 洛谷 P3003 [USACO10DEC]苹果交货Apple Delivery
洛谷 P3003 [USACO10DEC]苹果交货Apple Delivery 题目描述 Bessie has two crisp red apples to deliver to two of he ...
- USACO Apple Delivery
洛谷 P3003 [USACO10DEC]苹果交货Apple Delivery 洛谷传送门 JDOJ 2717: USACO 2010 Dec Silver 1.Apple Delivery JDOJ ...
- 【BZOJ】2100: [Usaco2010 Dec]Apple Delivery(spfa+优化)
http://www.lydsy.com/JudgeOnline/problem.php?id=2100 这题我要吐血啊 我交了不下10次tle.. 噗 果然是写挫了. 一开始没加spfa优化果断t ...
- bzoj 2100: [Usaco2010 Dec]Apple Delivery【spfa】
洛谷数据好强啊,普通spfa开o2都过不了,要加双端队列优化 因为是双向边,所以dis(u,v)=dis(v,u),所以分别以pa1和pa2为起点spfa一遍,表示pb-->pa1-->p ...
- BZOJ 2100: [Usaco2010 Dec]Apple Delivery spfa
由于是无向图,所以可以枚举两个终点,跑两次最短路来更新答案. #include <queue> #include <cstdio> #include <cstring&g ...
- bzoj2100 [Usaco2010 Dec]Apple Delivery
Description Bessie has two crisp red apples to deliver to two of her friends in the herd. Of course, ...
随机推荐
- 子线程更新UI
https://www.cnblogs.com/joy99/p/6121280.html
- IE浏览器发展史
- sqlserver查询分析器在本地服务器查看其它SqlServer服务器内容
exec sp_addlinkedserver 服务器自命名,'',sqloledb,要查询服务器的IP地址 exec sp_addlinkedsrvlogin 服务器自命名,false,null,账 ...
- AI:IPPR的数学表示-CNN结构进化(Alex、ZF、Inception、Res、InceptionRes)
前言: 文章:CNN的结构分析-------: 文章:历年ImageNet冠军模型网络结构解析-------: 文章:GoogleLeNet系列解读-------: 文章:DNN结构演进Histor ...
- SLAM:(编译ORB)fatal error LNK1181: 无法打开输入文件“libboost_mpi-vc110-mt-1_57.lib”
对于使用MD版本编译的ORB_SLAM,会用到MPI版本的Boost,需要自己编译,比较麻烦. 因此使用MT版本进行生成,暂时无法完成. 工程配置 发现添加库文件使用了:从父级或项目默认继承,默认包含 ...
- sql_3 join
http://www.cnblogs.com/rush/archive/2012/03/27/2420246.html
- Vue: axios 请求封装及设置默认域名前缀 (for Vue 2.0)
1. 实现效果 以get方法向http://192.168.32.12:8080/users 发起请求.获取数据并进行处理 this.apiGet('/users', {}) .then((res) ...
- vue中怎样实现 路由拦截器
vue中怎样实现 路由拦截器(当用户没有登录的时候,跳转到登录页面,已经登录的时候,不能跳转到登录页,除非后台token失效) 在 我们需要实现这样 一个功能,登录拦截 其实就是 路由拦截,首先在定义 ...
- C++引用、类型转换、类和对象(day03)
十 C++的引用(Reference) 引用型函数参数 )将引用用于函数的参数,可以修改实参变量的值,同时也能减小函数调用的开销. )引用参数有可能意外修饰实参的值,如果不希望修改实参变量本身,可以将 ...
- 34.初识搜索引擎及timeout机制
主要知识点 1.对搜索执行结果的说明 2.timeout机制讲解 一.对执行 GET /_search 的结果的说明 执行结果如下(只保留部分) { "took": 29, &qu ...