点击跳转例题

思路:
通过题意描述,判断出是曼哈顿距离,所以我们只需要找出实际中两个点的坐标,那么就可以计算了。
与平常的坐标不同的是,就是y坐标倒过来了,所以我们只需要把y坐标改到相应的坐标即可。
 

#include <bits/stdc++.h>
#define int long long //(有超时风险)
#define PII pair<int,int>
#define endl '\n'
#define LL __int128

using namespace std;

const int N=2e5+10,M=1e3+10,mod=998244353,INF=0x3f3f3f3f;

int a[N],b[N],c[N],pre[N];

signed main()
{
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);

    int w,n,m;cin>>w>>n>>m;

    int x1=(n+w-1)/w;int y1=n-(x1-1)*w;
    if(x1%2==0)
    {
        y1=w-y1+1;
    }
    int x2=(m+w-1)/w;int y2=m-(x2-1)*w;
    if(x2%2==0)
    {
        y2=w-y2+1;
    }
    cout<<abs(x1-x2)+abs(y1-y2)<<endl;

    return 0;
}

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐