bzoj1193:马步距离
题目描述
输入
只包含4个整数,它们彼此用空格隔开,分别为xp,yp,xs,ys。并且它们的都小于10000000。
输出
含一个整数,表示从点p到点s至少需要经过的马步移动次数。
样例输入
样例输出
1 #include<cstdio> 2 #include<algorithm> 3 #include<cstring> 4 using namespace std; 5 int u[10]={1,1,2,2,-1,-1,-2,-2},p[10]={2,-2,1,-1,2,-2,1,-1}; 6 int sx,sy,ex,ey; 7 int q[10005][3]; 8 int ans,dis[105][105]; 9 bool ok(int x,int y) 10 { 11 if(x<0||y<0||x>100||y>100)return false; 12 return true; 13 } 14 void bfs(int x,int y) 15 { 16 memset(dis,-1,sizeof(dis)); 17 int head=0,tail=1; 18 q[0][0]=x;q[0][1]=y;dis[x][y]=0; 19 while(head!=tail) 20 { 21 int xx=q[head][0],yy=q[head++][1]; 22 for(int i=0 ; i<8 ; ++i) 23 { 24 int dx=u[i]+xx; 25 int dy=p[i]+yy; 26 if(!ok(dx,dy)||dis[dx][dy]!=-1)continue; 27 dis[dx][dy]=dis[xx][yy]+1; 28 if(dx==50&&dy==50)return ; 29 q[tail][0]=dx;q[tail++][1]=dy; 30 } 31 } 32 } 33 int main() 34 { 35 scanf("%d%d%d%d",&sx,&sy,&ex,&ey); 36 int x=abs(sx-ex),y=abs(sy-ey); 37 while(x+y>=50) 38 { 39 if(x<y)swap(x,y); 40 x-=4; 41 if(x-4<2*y)y-=2; 42 ans+=2; 43 } 44 x+=50;y+=50; 45 bfs(x,y); 46 printf("%d",ans+dis[50][50]); 47 return 0; 48 }
转载于:https://www.cnblogs.com/fujudge/p/7496840.html
bzoj1193:马步距离相关推荐
- BZOJ1193 马步距离 (贪心)
恶心的题目= = 1 #include <cstdio> 2 #include <cmath> 3 #include <algorithm> 4 int f[5][ ...
- [Hnoi2006]马步距离
1285: [Hnoi2006]马步距离 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 36 Solved: 16 [Submit][Status] ...
- BZOJ 1193: [HNOI2006]马步距离【贪心+搜索】
1193: [HNOI2006]马步距离 [题目描述] 传送门 [题解] 大范围贪心,然后小范围BFS,为了答案准确,尽量使这个小范围大,这题100就可以了. 代码如下 #include<que ...
- bzoj 1193: [HNOI2006]马步距离(贪心+BFS)
1193: [HNOI2006]马步距离 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2117 Solved: 953 [Submit][Sta ...
- P2060 [HNOI2006]马步距离
P2060 [HNOI2006]马步距离 数据到百万级别,明显爆搜不行,剪枝也没法剪.先打表.发现小数据内步数比较受位置关系影响,但数据一大就不影响了.大概搜了一个20*20的表把赋值语句打出来.判断 ...
- 【BZOJ 1193】 [HNOI2006]马步距离
1193: [HNOI2006]马步距离 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 919 Solved: 419 [ Submit][ ...
- BZOJ1193: [HNOI2006]马步距离
易水人去,明月如霜. Description 在国际象棋和中国象棋中,马的移动规则相同,都是走"日"字,我们将这种移动方式称为马步移动.如图所示, 从标号为 0 的点出发,可以经过 ...
- 【ACWing】2135. 马步距离(配数学证明)
题目地址: https://www.acwing.com/problem/content/description/2137/ 在国际象棋和中国象棋中,马的移动规则相同,都是走"日" ...
- 1193: [HNOI2006]马步距离
题目链接 题目大意:求出从点 p 到点 s 至少需要经过多少次马步移动 题解:直接搜会T,贪心会WA--正解是大范围贪心,小范围暴力--有种取长补短的感觉--Orz 我的收获:乱搞出奇迹-- #inc ...
最新文章
- javaweb友好的删除提示语句!
- VTK:字形2D用法实战
- 注释和简单用户交互程序
- 案例:无人船测量点位数据+ArcGIS 10.6软件生成三维水下地形的两种方法
- 俄罗斯国家黑客TA505被指攻击金融机构
- python 以行为单位进行字符串的切割
- javac与java版本不一致
- 一个用于分布式DNN训练加速的通用通信调度器
- 分享网站变黑白色代码整站灰色插件方法
- 【NIPS挑战赛优胜解】用机器学习判断基因变异所属类别
- 孕育独角兽独立融资上市,互联网巨头都藏着什么“阳谋“?
- JavaScript-switch条件分支语句
- IPS,LED,LCD,TFT简介
- 【第二十四期】golang 一年经验开发 富途
- 老电脑也要玩tensorflow,解决AVX、SEE、SEE2等报错之路
- java 使用sourceforge.pinyin4j查询汉字拼音
- 目标检测算法综述—— One-Stage方法
- 人脸识别摄像头采集数据训练
- 数据备份有哪些种类?
- pert计算公式期望值_PERT的应用