hdu 3766 Knight's Trip(并不是bfs)

来源:互联网 发布:淘宝天猫怎么申请 编辑:程序博客网 时间:2024/05/21 10:38

这题是个骗子,以为和1372是一样的,结果人家数字大的不得了

然后就搜了波题解,来自:http://www.cnblogs.com/YY56/p/4954115.html


有一种情况我没有怎么看懂,先拉过来吧

首先,xy的大小排序和转化为都是正数步数不变应该懂吧。y=2*x这种情况直接就是(x+y)/3步。如果y<2*x但是(x+y)%3==0的话,那么我们可以通过控制(1,2),(2,1)两种跳法的次数达到...总数必然是(x+y)/3,然后xy的和对3取余是1的话,我们是不是必然可以在(x+y-1)/3步的时候跳到(x,y-1)这个点,但是不能一步跳到(x,y),回撤两步到(x-4,y-5)这个点,我们可以用三步跳到(x,y),那么就是原先的步数+1。余数为2,就是先跳到(x-1,y-1)这个地方,我们知道(0,0)到(1,1)只需要两步,那么(x-1,y-1)到(x,y)也就是原先步数+2.然后考虑y>2*x,先把(0,1)的情况特殊处理一下。接着我们可以用x步跳到(x,y),那么原问题就转化为(0,0)到(0,y-2*x)。当y-2*x是4的倍数的话我们可以直接(1,2)(-1,2)这个跳可以在(y-2*x)/2步到达。余数为1,就是(0,0)到(0,1)的问题,但是这个需要三步不是最优的,我们后撤两步变为(0,0)到(0,5),我们可以三步达到,那么就是原先的步数加上1就是解。余数为2,我们可以分别跳一次(2,1)(-2,1)到达。余数为3,转化为(0,0)到(0,3)的问题我们可以(-1,2)(1,1)(0,3)三步到达。以上就是全部情况,o(╯□╰)o,在纸上画画,应该所有在这这几类范围内。

y==2*x 这里比较好懂,一直走(+1,+2)就可以了;

y<2*x 这里,我的理解是,先按照(+1,+2)走,走到目标点旁边,这时候有两种情况

假设我们(a,b)是按照(+1,+2)走,距离目标点最近的点

1.目标点是(a+1,b),你会发现,走3步可以到达目标点,但这不是最小的情况!!!往回走一步,也就是回到(a-1,b-2)的点,然后你会发现,只需要2步就可以到达,也就是说,这种情况下,我们只需要 -1+2=1步,即可到达目标点

2.目标点是(a+1,b+1),我们需要2步到达目标点


#include<cstdio>#include<cstring>#include<cmath>#include<iostream>#include<algorithm>#include<queue>#define N 105using namespace std;int main(){char s[10];int x,y;while(scanf("%s",s)!=EOF){if(s[0]=='E')break;sscanf(s,"%d",&x);//读取字符串中的数值赋给x,//一直wa,后来发现忘了输入不一定是一位数,这个函数是第一次用 scanf("%d",&y);if(x<0)x=-x;if(y<0)y=-y;if(x>y)swap(x,y);int ans;if(y<=2*x){if(x==1&&y==1)ans=2;else if(x==2&&y==2)ans=4;else ans=(x+y)/3+(x+y)%3;}else{ans=x;int c=(y-2*x)%4;ans+=c;            ans+=(y-2*x-c)/2;if(y==1&&x==0)ans=3;}printf("%d\n",ans); } return 0;}


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 液相色谱柱柱压柱压高怎么办 手机销卡存的钱怎么办 41周宫颈未成熟怎么办 运费险拒绝理赔怎么办 淘宝运费险拒赔怎么办 订单险的运费怎么办 拼多多要换货怎么办 大件退货运费险怎么办 冲浪助手退订了怎么办 小蓝车押金退不了怎么办 小蓝车押金没退怎么办 有订单险退货怎么办 订单险交不了怎么办 小孩手机瘾大不写作业怎么办 运费险不到账怎么办 淘金币要过期怎么办 手机一直扣费怎么办 手机卡自动扣费怎么办 淘宝退货运费险不赔怎么办 类目不能开直通车怎么办 淘宝虚拟恶意退款怎么办 淘宝虚拟单退款怎么办 虚拟物品被骗了怎么办 网络选修课挂了怎么办 美团商家退出怎么办 卖家版运费险太贵了怎么办 美瞳没有客源怎么办 购物车满了怎么办 手机程序无响应怎么办 三星手机无响应怎么办 游戏无响应了怎么办 手机百度无响应怎么办 新手机响应慢怎么办 vivo手机无响应怎么办 vivo软件无响应怎么办 退货商家不处理怎么办 淘宝页面变小了怎么办 淘宝卖家让微信交易被骗怎么办 苹果下载特别慢怎么办 淘宝没有支付宝怎么办 淘宝买东西限购怎么办