Codeforces Round #420 (Div. 2) D
来源:互联网 发布:四六级听力软件 编辑:程序博客网 时间:2024/06/05 11:20
好像并不太懂啊,先挖坑。
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int inf=0x7f7f7f7f;int read(){ char ch=getchar();int f=0; while(ch<'0'||ch>'9') ch=getchar(); while(ch>='0'&&ch<='9') {f=(f<<1)+(f<<3)+ch-'0'; ch=getchar();} return f;}int r[10005],c[10005],d[10005]={inf};int n,m,k,jd;bool flag=0,vis[10005];int main(){ int i,id; n=read();m=read();k=read(); for(int i=1;i<=k;i++) { scanf("%d %d",r+i,c+i); if(r[i]==n&&c[i]==m) flag=1; if(r[i]==1&&c[i]==1) jd=i; d[i]=inf; } if(!flag) { r[++k]=++n; c[k]=++m; } d[k]=0; while(1) { id=0; for(int i=1;i<=k;i++) { if(vis[i]) continue; if(d[i]<d[id]) id=i; } if(!id||jd==id) break; vis[id]=1; for(int i=1;i<=k;i++) { if(vis[i]) continue; if(abs(r[i]-r[id])+abs(c[i]-c[id])<=1) d[i]=d[id]; else if(abs(r[i]-r[id])<=2||abs(c[i]-c[id])<=2) d[i]=min(d[id]+1,d[i]); } } if(d[jd]==inf) printf("-1"); else printf("%d",d[jd]);}
阅读全文
0 0
- Codeforces Round #420 (Div. 2) D
- Codeforces Round #420 (Div. 2) 821D Okabe and City
- CF-Codeforces Round #420 (Div. 2)-D-Okabe and City
- Codeforces Round #103 (Div. 2) D
- Codeforces Round #104 (Div. 2) D
- Codeforces Round #105 (Div. 2) D
- Codeforces Round #139 (Div. 2) D. Snake
- Codeforces Round #155 (Div. 2) D-rats
- Codeforces Round #159 (Div. 2) D sum
- Codeforces Round #184 (Div. 2) D、E
- Codeforces Round#186(Div 2) D
- codeforces Round # 187(Div.2) D
- Codeforces Round #191 (Div. 2) D
- Codeforces Round #194 (Div. 2) D. Chips
- Codeforces Round #209 (Div. 2) <A-D>
- Codeforces Round #218 (Div. 2) D. Vessels
- Codeforces Round #231 (Div. 2)A-D
- Codeforces Round #139 (Div. 2) D. Snake
- Unity3d代码获取隐藏物体
- python简单学习:类、类与对象、继承、读取文件
- BT下载原理简介
- Activity生命周期启动方式及启动模式
- 大数加法
- Codeforces Round #420 (Div. 2) D
- 线程死锁
- 时间的获取与格式转换
- OpenCV学习笔记(27) 灰度直方图均衡化 练习
- log4j的8个日志级别(OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、 ALL)
- spring mvc redirect 重定向 跳转并传递参数
- 进程注入后门工具Cymothoa
- TiDB RC3 Release
- iOS