【链接】 我是链接,点我呀:)

【题意】

在这里输入题意

【题解】

原问题可以等价为两个点。
然后其中一个点要移动到另外一个点。
那么我们可以把左下角那个点(对称总是可以得到一个点在左下角)放在原点的位置。
然后通过x坐标差和y坐标差。
获取出来,另外一个点的相对位置。
然后问题就转化成
从原点(0,0)出发,到达点(|xp-xs|,|yp-ys|)的问题了
设那个点为(x,y)

这个问题在大范围内。

即当x>10或者y>10的时候。可以谈心地解。

即直接让他往(0,0)的方向贪心跳

直到x<10且y<10就好

(每次跳的时候,如果x>y那么x-=2,y-=1,如果x<=y那么y-=2,x-=1

(如果x或者y变成负数了,那么直接取绝对值就好。因为下一步总是能跳回来的

(变成负数,肯定是0->-1了,那么我们就把它改成往里面跳就好了,那么就是变成1了而不是-1,所以直接取绝对值是没问题的。

【代码】

#include <bits/stdc++.h>
#define LL long long
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
#define all(x) x.begin(),x.end()
#define pb push_back
#define lson l,mid,rt<<1
#define rson mid+1,r,rt<<1|1
using namespace std; const double pi = acos(-1);
const int dx[8] = {-1,-2,-2,-1,1,2,2,1};
const int dy[8] = {-2,-1,1,2,2,1,-1,-2};
const int N = 20;
const int INF = 0x3f3f3f3f; int xp,yp,xs,ys,ans;
int dis[N+10][N+10];
queue<pair<int,int> > dl; int main(){
#ifdef LOCAL_DEFINE
freopen("rush_in.txt", "r", stdin);
#endif
scanf("%d%d%d%d",&xp,&yp,&xs,&ys);
xp = abs(xp-xs);
yp = abs(yp-ys); while (xp > 10 || yp>10){
if (xp>yp){
xp-=2;
yp-=1;
}else {
yp-=2;
xp-=1;
}
xp = abs(xp);yp = abs(yp);
ans++;
} dl.push(make_pair(0,0));
memset(dis,INF,sizeof dis); dis[0][0] = 0;
while (!dl.empty()){
int x = dl.front().first,y = dl.front().second;
dl.pop();
for (int i = 0;i < 8;i++){
int tx = x+dx[i],ty = y + dy[i];
if (tx<-1 || ty<-1 || tx>11 || ty>11) continue;
if (dis[tx][ty]>dis[x][y]+1){
dis[tx][ty] = dis[x][y] + 1;
dl.push(make_pair(tx,ty));
}
}
}
printf("%d\n",ans+dis[xp][yp]);
return 0;
}

最新文章

  1. strstr 函数的实现
  2. 网页特效:用CSS3制作3D图片立方体旋转特效
  3. node.js之看懂package.json依赖库版本控制
  4. Android——android相对布局(RelativeLayout)及属性
  5. ogre世界坐标鱼屏幕坐标相互转换
  6. windowsphone 瀑布流&amp;ui虚拟化
  7. 老oj2146 &amp;&amp; Pku2135 Farm Tour
  8. wikioi1688 求逆序对
  9. SSH有端口映射功能(访问本地端口=访问远程端口)
  10. scala-Future和Promise
  11. [DeeplearningAI笔记]ML strategy_1_1正交化/单一数字评估指标
  12. python小练习(自己瞎倒腾)
  13. [LOJ2230][BJOI2014]大融合
  14. HDU4624 Endless Spin 【最大最小反演】【期望DP】
  15. pascal与其它语言代码书写的不同和pascal的快捷键
  16. JFace TableViewer性能改善 -- 使用VirtualTable
  17. java的配置方式简介
  18. web前端开发笔记(1)
  19. js 刷新页面
  20. day 32 css后续补充以及js 简单入门

热门文章

  1. [CodeForces]529B Group Photo 2
  2. 旋转VR相机不头晕:一个反直觉的发现
  3. js 数组 : 差集、并集、交集、去重
  4. .conf、.bak是什么格式
  5. Ubuntu安装keepalived
  6. 一个HTTP连接是包含两部分的,请求报文和响应报文这俩组合起来才是一次完整的HTTP请求,并不会单独显示请求报文或者响应报文
  7. Qt之二维码扫描
  8. linux 下面avr开发环境的安装
  9. Hibernate的多种关系映射(oto、otm、mtm)
  10. bzoj4568: [Scoi2016]幸运数字(LCA+线性基)