首页 > 其他分享 >1219. 移动距离

1219. 移动距离

时间:2022-10-09 20:46:29浏览次数:94  
标签:y2 移动 int 边界值 1219 距离 位置 y1 include

https://www.acwing.com/problem/content/1221/

根据样例,模拟一下得出规律
即n/w的值决定n所在的行数是正向还是反向
n/2为偶,则为正,为奇,则为反
对于一个数,它的位置表示可以用,行:行/w,列:列%w
细节点1:
但是,对于边界值却不好处理
例如:
1   2   3   4   5   6
12 11 10  9   8   7
显然1~5都可以用 本身值/w,本身值%w 来表示这些数的行号,列号
但是与它们同一行的6却无法这样表示,6/w=1,而它们都为0,同样的12也是如此
寻找规律,我们发现能被w整除的都是这样,且均处在边界值,与同一行的用同一方式表示出的值不同
解决这个问题只需要每个数字-1即可,-1就能让边界值,与它们的值/w相同的在一行
如:
0   1   2   3   4   5
11 10 9   8   7    6
如此,就满足规律了,但是对于原本所求的数,位置就改变了,我们所求的是两个位置的距离,因此只要改为求原位置的距离即可,即所有数字因加上了0而像右移动一位,我们所求的即向左移动一位的位置的距离即可,即求m-1,n-1两个数的位置
还有细节点2:
对于n/2的奇数行,即反向行,要求其位置,需要求正向的此行第几个数,即正向列号,带入含0的样例可以很轻松知道,其值为:w-1-n%w

如此,难点都被解决

#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
using namespace std;
int n,m,w;
int main()
{
    scanf("%d%d%d",&w,&n,&m);
    n--,m--;
    int x1 = n/w,x2 = m/w;
    int y1 = n%w,y2  = m%w;
    if(x1 % 2) y1 = (w-1) - y1; 
    if(x2 % 2) y2 = (w-1) - y2; 
    printf("%d\n",abs(x1-x2)+abs(y1-y2));
    return 0;
}

 

标签:y2,移动,int,边界值,1219,距离,位置,y1,include
From: https://www.cnblogs.com/lxl-233/p/16773597.html

相关文章

  • 10、python正式篇 文件和光标移动
    目录一、文件操作1、文件的概念2、代码打开文本的方式二、文件读写模式1、'r'只读模式read2、'w'只写模式write3、'a'尾部追写模式add三、文件操作模式1、t文本模式......
  • 最小移动距离
    最小移动距离平面上有$n$个点,编号为$1\simn$。对于每个点$i$($1\leqi\leqn$),都存在一条从点$i$到点$a_i$($1\leqa_i\leqn$,$a_i$可以等于$i$)的有向边。......
  • 283 移动零
      双指针:Left和Right,将左指针的零与右指针的非零数交换,且非零数的相对顺序并未改变。1defmovezeros(nums):2n=len(nums)3left=right=04......
  • 10月8日内容总结——文件操作之文本模式和二进制模式、文件内光标的移动
    目录一、文件操作1、概念讲解2、通过代码打开文件的两种方式方式一:方法二:一些小知识点总结:二、文件的读写模式1、只读模式(r)2、只写模式(w)3、只追加模式(a)三、文件的操作模式......
  • docker目录移动到其他磁盘
    docker目录移动到其他磁盘的操作 1.systemctlstopdocker #停止docker2.mkdir/storage/docker-lib #在我这个项目里storage是普通硬盘,在storage下创建一个目录3.m......
  • 博客添加网页背景动画效果,跟随鼠标移动的线条
    博客添加网页背景动画效果,跟随鼠标移动的线条鼠标动效如下图如何实现?设置方式是在博客的“管理-->设置”,然后在设置中的页脚HTML代码中添加<script>!function(){......
  • 思无界实习招聘|移动端SLAM、语义SLAM、三维重建等多个算法岗位
    3D视觉工坊致力于推荐最棒的工作机会,精准地为其找到最佳求职者,做连接优质企业和优质人才的桥梁。思无界科技TF-SLAM团队实习招聘TF-SLAMGroup:SLAM团队成员主要来自慕尼黑工......
  • 移动端 element + vue 二次封装上传图片的组件
    功能:支持预览、长按图片保存、删除项目中使用:1<el-form-itemlabel="上传照片"class="ml30">2<e-upload-image3v-model="image"4......
  • 移动研发 DevOps 落地实践
    大家好,我是来自支付宝终端工程技术团队的十境。本文将带领大家了解支付宝移动端如何随着移动市场的告诉发展,逐步沉淀优化出适用业务发展需求的研发效能实践。0.背景如何解......
  • 横向移动-Exchange
    1、端口扫描exchange会对外暴露接口如OWA,ECP等,会暴露在80端口,而且25/587/2525等端口上会有SMTP服务,所以可以通过一些端口特征来定位exchange。2、SPN扫描powershell......