BZOJ 4152: [AMPPZ2014]The Captain(最短路)
Submit: 1550 Solved: 619
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
2 2
1 1
4 5
7 1
6 7
Sample Output
HINT
Source
鸣谢Claris上传
很有意思的一道题目
两个点之间的费用为min(|x1-x2|,|y1-y2|),就相当于对于x和y分别连边。
对于1,2,3这三个点,若x1<=x2<=x3,不难发现|x1-x3|这条边没有必要连。
那么我们把所有点按x排序,每个点向相邻点连权值为x差的绝对值的边。
再把所有点按y排序,同理。
然后直接跑最短路即可。
记得开long long
#include<cstdio> #include<algorithm> #include<queue> #include<cstring> #define Pair pair<int,int> #define F first #define S second #define int long long const int MAXN=1e6+10; using namespace std; inline int read() {char c=getchar();int x=0,f=1;while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}return x*f; } int N; struct node {int id,x,y; }Point[MAXN]; int comp(const node &a,const node &b){return a.x<b.x;} int comp2(const node &a,const node &b){return a.y<b.y;} int dis[MAXN],vis[MAXN]; struct E {int u,v,w,nxt; }edge[MAXN]; int head[MAXN],num=1; inline void AddEdge(int x,int y,int z) {edge[num].u=x;edge[num].v=y;edge[num].w=z;edge[num].nxt=head[x];head[x]=num++; } void Dijstra() {memset(dis,0xf,sizeof(dis));dis[1]=0;priority_queue<Pair>q;q.push(make_pair(0,1));while(q.size()!=0){while(vis[q.top().S]&&q.size()>0) q.pop();Pair p=q.top();vis[p.S]=1;for(int i=head[p.S];i!=-1;i=edge[i].nxt)if(dis[edge[i].v]>dis[p.S]+edge[i].w)dis[edge[i].v]=dis[p.S]+edge[i].w,q.push(make_pair(-dis[edge[i].v],edge[i].v));}printf("%lld",dis[N]); } main() {#ifdef WIN32freopen("a.in","r",stdin);#else#endifmemset(head,-1,sizeof(head));N=read();for(int i=1;i<=N;i++) Point[i].id=i,Point[i].x=read(),Point[i].y=read();sort(Point+1,Point+N+1,comp);for(int i=1;i<=N-1;i++)AddEdge(Point[i].id,Point[i+1].id,Point[i+1].x-Point[i].x),AddEdge(Point[i+1].id,Point[i].id,Point[i+1].x-Point[i].x);sort(Point+1,Point+N+1,comp2);for(int i=1;i<=N-1;i++) AddEdge(Point[i].id,Point[i+1].id,Point[i+1].y-Point[i].y),AddEdge(Point[i+1].id,Point[i].id,Point[i+1].y-Point[i].y);Dijstra();return 0; }
转载于:https://www.cnblogs.com/zwfymqz/p/8474106.html
BZOJ 4152: [AMPPZ2014]The Captain(最短路)相关推荐
- 4152. [AMPPZ2014]The Captain(稠密图最短路)
4152. [AMPPZ2014]The Captain 显然稠密图的边数时n2n^2n2量级,我们不可能把所有边建立出来,这时候通常寻求一些性质详细见[论题选编]稠密图最短路 针对本题我们可以先这样 ...
- 【BZOJ】4152: [AMPPZ2014]The Captain【SLF优化Spfa】
4152: [AMPPZ2014]The Captain Time Limit: 20 Sec Memory Limit: 256 MB Submit: 2107 Solved: 820 [Sub ...
- bzoj4144 [AMPPZ2014]Petrol 图论 最短路 并查集
bzoj4144 [AMPPZ2014]Petrol 图论 最短路 并查集 1.这道题我们主要就是要求出距离一个油站的最近的油站 首先我们dijkstra 求出任意一个点到 离他最近的油站的距离 2. ...
- BZOJ4152 AMPPZ2014 The Captain(最短路)
事实上每次走到横坐标或纵坐标最接近的点一定可以取得最优方案.于是这样连边跑最短路就可以了. #include<iostream> #include<cstdio> #inclu ...
- BZOJ.4144.[AMPPZ2014]Petrol(Kruskal重构树)
BZOJ 看别人代码的时候发现哪一步都很眼熟,突然想起来,就在四个月前我好像看过还给别人讲过?mmp=v= 果然不写写就是容易忘.写了好歹忘了的时候还能复习呢(虽然和看别人的好像也没多少差别?). 首 ...
- BZOJ 2662: [BeiJing wc2012]冻结(最短路)
这道题和 BZOJ 2763飞行路线 几乎一模一样..然后飞行路线我是1A,这道题WA了4次,我开始怀疑我的智商了.. ---------------------------------------- ...
- BZOJ 4143: [AMPPZ2014]The Lawyer( sort )
水题... 排序搞出每天的会议有哪些, 然后再按照会议的开始时间和结束时间排序, 最晚开始的和最早结束的会议不是同一场而且最晚开始的时间>最早结束的会议就有可能方案 -------------- ...
- BZOJ.3575.[HNOI2014]道路堵塞(最短路 动态SPFA)
题目链接 \(Description\) 给你一张有向图及一条\(1\)到\(n\)的最短路.对这条最短路上的每条边,求删掉这条边后\(1\)到\(n\)的最短路是多少. \(Solution\) 枚 ...
- Bzoj 4147: [AMPPZ2014]Euclidean Nim(博弈)
4147: [AMPPZ2014]Euclidean Nim Time Limit: 1 Sec Memory Limit: 256 MB Description Euclid和Pythagoras在 ...
最新文章
- 5G和AI机器人平台
- 【ARM】ARM接口技术
- 【原创】大叔经验分享(25)hive通过外部表读写hbase数据
- 基于NEO的私链(Private Blockchain)
- Java 引用类型变量的声明和使用
- 7-1 ATM机类结构设计(一) (100 分)
- linux服务器健康检查,Linux 检查硬盘健康状态
- Centos7 只启用iptables 禁用firewalld功能.
- python-判断一个字符串是目录还是文件及批处理方法
- dwg转换pdf方法
- Windows 中剪贴板的操作
- Python读取redis数据含有‘b‘
- Bulma和 Tailwind功能比较
- 307条互联网交流缩略语(English Abbreviations on Internet)
- PHP没有工作经验简历怎么写,没有工作经验应届生如何写简历呢?
- Entry name ‘META-INF/xxxxxxxx‘ collided 解决方法
- 诊断和响应故障_恢复表和表分区
- AI-人工智能学习线路图
- jquery 绘图工具 flot 使用
- GPS警用车辆3G视频监控系统方案
热门文章
- 空气培养皿采样后保存_环境监测基础知识——环境空气监测技术之布点采样
- log4j.logger java_java – Log4JLogger的根本原因是找不到还是不可用?
- debian下安装LNMP(三)
- java超市管理系统项目,HR的话扎心了
- 专属于Java程序员的学习福音
- python【力扣LeetCode算法题库】16- 最接近的三数之和
- python【蓝桥杯vip练习题库】ALGO-142 P1103(复数运算)
- 机器学习(MACHINE LEARNING) 【周志华版-”西瓜书“-笔记】 DAY2-模型评估与选择
- SharedPreferences的使用
- HTML语言基础.上