移动距离

一个蛇形矩阵,给你两个数字,求最少的移动距离:只能横着走或竖着走

这个移动的距离好求:横坐标的差+纵坐标的差

复制代码
#include<iostream>
#include<cmath>
using namespace std;
int main(){
    int w,m,n;
    cin>>w>>m>>n;
    m--,n--;
    int x1,y1,x2,y2;
    x1=m/w;
    x2=n/w;
    if(x1%2==0) y1=m%w;
    else y1=w-1-m%w;
    if(x2%2==0) y2=n%w;
    else y2=w-1-n%w;
    cout<<abs(x1-x2)+abs(y1-y2)<<endl;
    return 0;
}
/*
0 1 2 3 4 5 0
0 1 2 3 4 5 1
10 9 8 7 6 2
行号:n/w;
列号:偶数:n%w
奇数:w-1-n%w
因为蛇形
所以在奇偶行不一样
奇数行需要翻转一下
*/
复制代码

找规律吧,具体细品

posted @   小志61314  阅读(74)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示