距离

题目描述

一个边长为n的大菱形,包含n2个小菱形,我们按从上到下,从左到右的顺序给小菱形编号,从1开始。 比如下面的菱形,

   /\/\/\/\/\/\\/\/\/\/\/\/

对应的编号为

   12 34 5 67 89

如果两个菱形有共边,那么可以从这个共边通过。比如5号菱形,可以到2,3,7,8号菱形。

现在已知大菱形的边长,起点和终点的编号,问最少几步可以到达?

输入格式

第一行是一个整数T(1≤T≤10000),表示样例的个数。

以后每行一个样例,为三个整数 n(1≤n≤10000),s(1≤s≤n2),e(1≤e≤n2),分别表示菱形的边长,起点和终点的编号。

输出格式

每行输出一个样例的结果,为一个整数。

样例输入

2
2 1 3
3 1 7

样例输出

1
3

Sample Input


Sample Output


 
Source CodeProblem: 1404     User: 202205567311
Memory: 1164K       Time: 312MS
Language: G++     Result: Accepted
Source Code#include <stdio.h>
int abs(int a)
{return (a > 0) ? a : -a;
}
int main()
{int k, n, i, j, start, end, ans, sx, sy, ex, ey, max, min;//把菱形左转成正方形scanf("%d", &k);while (k--){sx = -1, sy = -1, ex = -1, ey = -1, max = 1, min = 1;scanf("%d %d %d", &n, &start, &end);if (start == 1){sx = sy = 0;}if (end == 1){ex = ey = 0;}for (i = 1; i < n; i++)//这边没有处理第一个元素,所以要一开始就处理{min += i;max += i + 1;//机制就是找个规律,最小值和最大值都是公差递增的数列if (end >= min && end <= max){ey = end - min;//画个表格看出来的吧ex = i - ey;}if (start >= min && start <= max){sy = start - min;sx = i - sy;}if (ex != -1 && ey != -1 && sx != -1 && sy != -1)break;}int temp = i;//temp用于记录xy坐标之和,发现第几斜杠x+y就是几i--;//for的最后i++所以要i--,temp要执行一次才++,所以temp=i--后的值+1for (j = 1; i > 0; i--, j++, temp++){if (ex != -1 && ey != -1 && sx != -1 && sy != -1)break;min += i + 1;max += i;if (end >= min && end <= max){ey = j + end - min;ex = temp - ey;//画个表格}if (start >= min && start <= max){sy = j + start - min;sx = temp - sy;}}ans = abs(ex - sx) + abs(ey - sy);//最小步数就是最优解printf("%d\n", ans);}
}

xtu1404 菱形2 距离相关推荐

  1. 平面点对问题,切比雪夫距离

    题目描述 给定平面的n个点(n<=1e5),所有坐标的绝对值在50000以内,现在问你有多少对点之间的距离不小于d.这里距离描述为两点的曼哈顿距离,即dist=|xi-xj|+|yi-yj|. ...

  2. 数字图像处理1:基本概念

    图像处理入门:基本概念 2018年05月18日 15:25:39 M_Z_G_Y 阅读数:161 数字图像:每一个数字图像都是一个像素点矩阵,这个矩阵包含所有像素点的强度值 像素点:最小的图像单元,一 ...

  3. AcWing-C/C++语法基础【合集1】

    文章目录 重点练习题目链接fast-challenge 1.变量.输入输出.表达式与顺序语句 604. 圆的面积 605. 简单乘积 606. 平均数1 607. 平均数2 608. 差 609. 工 ...

  4. 四连通、八连通、m连通

    转自:像素间的基本关系-连通性(邻接性) 连通性(邻接性)是描述区域和边界的重要概念. 两个像素连通的两个条件是: 1. 两个像素的位置是否相邻 2.两个像素的灰度值是否满足特定的相似性准则(同时满足 ...

  5. 数字图像处理期中学习报告

    数字图像处理 数字图像处理 一.学习内容总结 1. 第一章 绪论 1.1 什么是数字图像处理 1.2 使用数字图像处理领域的实例 1.3 数字图像处理的基本步骤 1.4 图像处理系统的组成 2. 第二 ...

  6. 【航线运输驾驶员理论考试】飞机一般知识

    文章目录 1.What is a purpose of flight spoilers?(扰流板的作用是) 2.For which purpose may flight spoilers be use ...

  7. c语言打印空心矩形图案的程序,C语言之输出空心棱形图案

    #include #include void main() { int n,j,i; /*i为行数,j为每行中的项数*/ printf("输入图案上三角的高度n:"); scanf ...

  8. c++gdal如何在大图像中截取小图像并获取其图像信息_OpenCV 图像处理大纲

    图像的取样和量化 取样就是取像素点,量化把灰度值量化到256个灰度级 数字图像的表示 图像定义为二位函数f(x, y),x,y是空间坐标f(x, y)是点的幅值 数字图像的质量 灰度级:表明像素明暗程 ...

  9. 用曼哈顿距离来巧解---输出菱形的问题

    今天才发现输出菱形有一个特别巧妙的方法.就是用曼哈顿距离. 详细资料可以看这里:曼哈顿距离 那么如何用曼哈顿距离来输出菱形的呢? 我们来分析一下. 你会发现输出 " * " 号的位 ...

最新文章

  1. 大数据学习01——配置虚拟机节点相关网络
  2. 第16届智能小车用AURIX™ 资料汇总
  3. Intel Realsense D435 python wrapper pyrealsense 类模块汇总
  4. shell -eom_EOM的完整形式是什么?
  5. 人脸识别使用base64的方式添加人脸
  6. 格式化显示(日期\货币)
  7. windows系统下修改mysql时区_Linux与Windows下修改MySql时区的方法
  8. 通用mapper版+SpringBoot+MyBatis框架+mysql数据库的整合
  9. jdk和jre和jvm区别_JDK,JRE和JVM之间的区别
  10. 诺基亚10.22变革影响的分析
  11. ie浏览器自动清理缓存简单设置方法
  12. PHP保存图片并且修改图片分辨率(DPI)
  13. 华为手机USB调试搜不到设备
  14. python透视表画图_如何用Python实现透视表?
  15. 关于神舟笔记本电脑结束睡眠后耳机没声音的解决方法
  16. 站长福音:网站实时监控
  17. 269个JavaScript工具函数,助你提升工作效率(上)
  18. sprint 1 总结
  19. Stata常见问题解答
  20. 计算机组成原理——总线控制(总线判优控制、总线通信控制)

热门文章

  1. Redis的那些最常见面试问题[精校版]
  2. html怎么帮图片占位,html图片和css背景图片哪个先开始加载?css占位图怎么操作?...
  3. ElasticSearch设置密码Windows
  4. GoldenEye-v1靶场
  5. 网络状态诊断工具——netstat命令
  6. Navicat for ORACLE 导出数据
  7. 10-SA8155-QNX 中间件之Protobuf/Fdbus交叉编译
  8. Sublime Text格式化Xml
  9. shanzhi - 哆啦A梦
  10. 10 接口测试平台 项目管理模块开发(三)