xtu1404 菱形2 距离
距离题目描述一个边长为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 距离相关推荐
- 平面点对问题,切比雪夫距离
题目描述 给定平面的n个点(n<=1e5),所有坐标的绝对值在50000以内,现在问你有多少对点之间的距离不小于d.这里距离描述为两点的曼哈顿距离,即dist=|xi-xj|+|yi-yj|. ...
- 数字图像处理1:基本概念
图像处理入门:基本概念 2018年05月18日 15:25:39 M_Z_G_Y 阅读数:161 数字图像:每一个数字图像都是一个像素点矩阵,这个矩阵包含所有像素点的强度值 像素点:最小的图像单元,一 ...
- AcWing-C/C++语法基础【合集1】
文章目录 重点练习题目链接fast-challenge 1.变量.输入输出.表达式与顺序语句 604. 圆的面积 605. 简单乘积 606. 平均数1 607. 平均数2 608. 差 609. 工 ...
- 四连通、八连通、m连通
转自:像素间的基本关系-连通性(邻接性) 连通性(邻接性)是描述区域和边界的重要概念. 两个像素连通的两个条件是: 1. 两个像素的位置是否相邻 2.两个像素的灰度值是否满足特定的相似性准则(同时满足 ...
- 数字图像处理期中学习报告
数字图像处理 数字图像处理 一.学习内容总结 1. 第一章 绪论 1.1 什么是数字图像处理 1.2 使用数字图像处理领域的实例 1.3 数字图像处理的基本步骤 1.4 图像处理系统的组成 2. 第二 ...
- 【航线运输驾驶员理论考试】飞机一般知识
文章目录 1.What is a purpose of flight spoilers?(扰流板的作用是) 2.For which purpose may flight spoilers be use ...
- c语言打印空心矩形图案的程序,C语言之输出空心棱形图案
#include #include void main() { int n,j,i; /*i为行数,j为每行中的项数*/ printf("输入图案上三角的高度n:"); scanf ...
- c++gdal如何在大图像中截取小图像并获取其图像信息_OpenCV 图像处理大纲
图像的取样和量化 取样就是取像素点,量化把灰度值量化到256个灰度级 数字图像的表示 图像定义为二位函数f(x, y),x,y是空间坐标f(x, y)是点的幅值 数字图像的质量 灰度级:表明像素明暗程 ...
- 用曼哈顿距离来巧解---输出菱形的问题
今天才发现输出菱形有一个特别巧妙的方法.就是用曼哈顿距离. 详细资料可以看这里:曼哈顿距离 那么如何用曼哈顿距离来输出菱形的呢? 我们来分析一下. 你会发现输出 " * " 号的位 ...
最新文章
- 大数据学习01——配置虚拟机节点相关网络
- 第16届智能小车用AURIX™ 资料汇总
- Intel Realsense D435 python wrapper pyrealsense 类模块汇总
- shell -eom_EOM的完整形式是什么?
- 人脸识别使用base64的方式添加人脸
- 格式化显示(日期\货币)
- windows系统下修改mysql时区_Linux与Windows下修改MySql时区的方法
- 通用mapper版+SpringBoot+MyBatis框架+mysql数据库的整合
- jdk和jre和jvm区别_JDK,JRE和JVM之间的区别
- 诺基亚10.22变革影响的分析
- ie浏览器自动清理缓存简单设置方法
- PHP保存图片并且修改图片分辨率(DPI)
- 华为手机USB调试搜不到设备
- python透视表画图_如何用Python实现透视表?
- 关于神舟笔记本电脑结束睡眠后耳机没声音的解决方法
- 站长福音:网站实时监控
- 269个JavaScript工具函数,助你提升工作效率(上)
- sprint 1 总结
- Stata常见问题解答
- 计算机组成原理——总线控制(总线判优控制、总线通信控制)