www 被大佬|

wscqwq

园龄:2年粉丝:2关注:3

1

img

考虑到砖块的横着的线都是一条条形如 y=... 的线,不可避免,只有穿过竖着的线是可以节省。

观察发现,当 ΔxΔy 时,通过斜着走可以规避掉竖线,答案为 Δy

否则,出现一些无法规避的线,我们考虑令 sx<tx

根据 x+y 奇偶性,分为两类起点,然后斜着走起点类型不变,接着稍微推一下。

一遍AC!

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll sx,sy,tx,ty;
int main(){
    #ifndef ONLINE_JUDGE
    freopen("1.txt","r",stdin);
    #endif
    #ifdef ONLINE_JUDGE
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);
    #endif
    cin>>sx>>sy>>tx>>ty;
    if(sx>tx)swap(sx,tx),swap(sy,ty);
    bool type=(sx+sy)&1;
//    cout<<sx<<' '<<sy<<' '<<tx<<' '<<ty<<'\n';
    ll dx=abs(sx-tx),dy=abs(sy-ty);
    if(dx<=dy)cout<<dy;
    else{
    	ll d=dx-dy;
    	//type==1 1,3,5,7,9
    	//type==0 2,4,6,8,10
    	cout<<dy+(d+type>>1);
	}
    return 0;
}

本文作者:wscqwq

本文链接:https://www.cnblogs.com/wscqwq/p/18288241

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   wscqwq  阅读(5)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起