博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
220 DIV2 A. Inna and Pink Pony
阅读量:6596 次
发布时间:2019-06-24

本文共 1256 字,大约阅读时间需要 4 分钟。

Inna and Pink Pony

输入n,m,i,j,a,b

可以看成n行m列的矩阵,起点(i,j),每次移动(a,b),(-a,-b),(-a,b),(a,-b)

可移动到(1,m),(n,1),(n,m),(1,1)四个方向

如果可以移动到这四个点中的一个或多个。

输出到其中一个点的最短距离

如果不能输出 Poor Inna and pony!

input

5 7 1 3 2 2

output

2

input

5 5 2 3 1 1

Poor Inna and pony!

PS:开始想成BFS了,一看100万,肯定超时了。

还是思想题,注意:判断边界

1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 using namespace std; 8 int n,m,i,j,a,b; 9 10 int check(int x,int y)11 {12 int fx,fy;13 14 if(x==i && y==j)15 return 0;16 if(i+a>n&&i-a<1 || j+b>m&&j-b<1)//边界17 return INT_MAX;18 fx=abs(x-i);19 fy=abs(y-j);20 if(fx%a!=0 || fy%b!=0)//同为整数步21 return INT_MAX;22 fx=fx/a;//得到步数23 fy=fy/b;//得到步数24 int fz;25 fz=abs(fx-fy);26 if(fz%2==0)//同奇同偶27 {28 fz=max(fx,fy);29 return fz;30 }31 else32 return INT_MAX;33 }34 int main()35 {36 while(~scanf("%d%d%d%d%d%d",&n,&m,&i,&j,&a,&b))37 {38 int count=INT_MAX;39 count=min(check(1,1),check(1,m));40 count=min(count,check(n,1));41 count=min(count,check(n,m));42 if(count==INT_MAX)43 printf("Poor Inna and pony!\n");44 else45 printf("%d\n",count);46 }47 return 0;48 }
View Code

 

 

转载于:https://www.cnblogs.com/xuesen1995/p/4129218.html

你可能感兴趣的文章
IT巨鳄操纵下的云计算创新市场
查看>>
Rsync+sersync数据备份
查看>>
我的友情链接
查看>>
【Visual C++】游戏开发笔记四十七 浅墨DirectX教程十五 翱翔于三维世界:摄像机的实现...
查看>>
非交互模式写入crontab -e
查看>>
Spring常用注解
查看>>
嵌入式Linux ARM汇编(四)——ARM汇编程序设计
查看>>
本地window的Tomcat部署与服务器linux的Tomcat部署无法连接数据库问题(基于Tomcat8.5)...
查看>>
MyBatis学习总结(10)——批量操作
查看>>
面试技巧让你与面试官从容而谈
查看>>
SSL-×××维护帮助
查看>>
ATL/COM----IDL和MIDL之详解
查看>>
解析HDF文件
查看>>
如何让编程产能翻二番?
查看>>
部署SCCM2007 R3(1)---安装前准备
查看>>
Linux服务器SWAP大小的分配原则
查看>>
EXCEL 中筛选的高级应用
查看>>
SpringBoot开发案例之整合Quartz任务管理系统
查看>>
评分条RatingBar
查看>>
leetcode- Single Number
查看>>