题目给出如下表的一个矩阵: (红字表示行数或列数)

25 24 23 22 21 5
10 11 12 13 20
9 8 7 14 19 3
2 3 6 15 18 2
1 4 5 16 17 1
1 2 3 4 5

如表格,矩阵是从1开始盘曲的,排放规律不是很难找。

题目要求算出某个数的坐标,数据范围2*10^9,很明显不能用模拟的,这题是纯数学题,找规律题。

我们把矩阵拆开来看,每次进入上一层都会方向反转,每一层拆出来看就是:

25	24	23	22 	21 	20	19 	18 	17
10 11 12 13 14 15 16
9 8 7 6 5
2 3 4
1

这样一个三角形,把坐标也写进去就是:

(第一次发现编辑器如此蛋疼。。。制表格老是错乱!)

下面贴了图片了。

25		24 		23 		22 		21 		20		19 		18 		17 	第5层
1.5 2.5 3.5 4.5 5.5 5.4 5.3 5.2 5.1 10 11 12 13 14 15 16 第4层
1.4 2.4 3.4 4.4 4.3 4.2 4.1 9 8 7 6 5 第3层
1.3 2.3 3.3 3.2 3.1 2 3 4 第2层
1.2 2.2 2.1 1 第1层
1.1

很快就能发现中间那个数都是在(n,n),然后向左向右都有规律的变化。

只要把这个规律描述出来就行了,注意层数的奇偶不同变化规律也会有所不同。

具体见代码:

#include <cstdio>
#include <cmath>
using namespace std; int main() {
long long n;
while (scanf("%lld", &n) && n) {
long long k = ceil(sqrt(n));
if (k % 2 == 0) {
if (k * k - n + 1 < n - (k - 1) * (k - 1))
printf("%lld %lld\n", k, k * k - n + 1);
else
printf("%lld %lld\n", n - (k - 1) * (k - 1), k);
}
else {
if (k * k - n + 1 < n - (k - 1) * (k - 1))
printf("%lld %lld\n", k * k - n + 1, k);
else
printf("%lld %lld\n", k, n - (k - 1) * (k - 1));
}
}
return 0;
}

uva 10161 Ant on a Chessboard 蛇形矩阵 简单数学题的更多相关文章

  1. UVa 10161 Ant on a Chessboard

    一道数学水题,找找规律. 首先要判断给的数在第几层,比如说在第n层.然后判断(n * n - n + 1)(其坐标也就是(n,n)) 之间的关系. 还要注意n的奇偶.  Problem A.Ant o ...

  2. 10161 - Ant on a Chessboard

    Problem A.Ant on a Chessboard Background One day, an ant called Alice came to an M*M chessboard. She ...

  3. Uva10161 Ant on a Chessboard

    Uva10161 Ant on a Chessboard 10161 Ant on a Chessboard One day, an ant called Alice came to an M*M c ...

  4. js实现蛇形矩阵

    参加腾讯前端实习生笔试,真的是被虐了千百遍,除了一条js程序题,其他半点前端都没有,都是考算法,计算机原理,数据结构.下面贴上腾讯笔试最后三大条中的一条,实现一个蛇形矩阵的输出.蛇形矩阵的什么样这里我 ...

  5. 【面试】输出"蛇形"矩阵

    一.题目描述 腾讯实习在线笔试的一道题目. 根据输入的数字(< 1000),输出这样的"蛇形"矩阵,如下.输入n,输出(n * n)阶矩阵,满足由外到内依次增大. 如: 输入 ...

  6. c++实现蛇形矩阵总结

    蛇形矩阵,百度了一下,是这么一个东西: 像一条蛇一样依次递增. 我想,竟然做了螺旋矩阵,那做一下这个吧.在之前的螺旋矩阵的main函数基础上,写个函数接口就行了,这一次做的很快,但是这个矩阵感觉比螺旋 ...

  7. wikioi 1160 蛇形矩阵

    /*======================================================================== 1160 蛇形矩阵 题目描述 Descriptio ...

  8. EOJ3536 求蛇形矩阵每一行的和---找规律

    题目链接: https://acm.ecnu.edu.cn/problem/3536/ 题目大意: 求蛇形矩阵的每一行的和,数据范围n<=200000. 思路: 由于n数据较大,所以感觉应该是需 ...

  9. Java编码 蛇形矩阵的构建与遍历输出

    一.蛇形矩阵的构建,并按行输出 例: 输入:n, 生成n*n的蛇形矩阵 1 2 3 8 9 4 7 6 5 输出:1 2 3 8 9 4 7 6 5 java编码 public static void ...

随机推荐

  1. UVA 1599 Ideal Path(bfs1+bfs2,双向bfs)

    给一个n个点m条边(<=n<=,<=m<=)的无向图,每条边上都涂有一种颜色.求从结点1到结点n的一条路径,使得经过的边数尽量少,在此前提下,经过边的颜色序列的字典序最小.一对 ...

  2. ActionForward

    一.只有登录才能显示的页面 这是一个很平常的问题,在访问某些网页的时候,只有登录才可以访问,以此保证安全. 实现原理也很简单,就是将一个属性设置在session中.在访问的时候进行判断即可. 例:re ...

  3. 关于 jsp:include 传参的用法

    引用模版页面的代码,如下: <jsp:include page="/WEB-INF/template/nav_template.jsp">     <jsp:pa ...

  4. linux下SSH远程连接服务慢解决方案

    1.适用命令及方案如下:[远程连接及执行命令]ssh -p22root@10.0.0.19ssh -p22 root@10.0.0.19 /sbin/ifconfig[远程拷贝:推送及拉取]scp - ...

  5. centos7命令行与图形界面启动模式修改

    1.命令启动 systemctl set-default multi-user.target 2.图形界面模式 systemctl set-default graphical.target

  6. sql 成绩表 case then

    select * from  dbo.tb_Scroe select Name,(select count(*) from tb_Scroe where Name = t.Name and Scroe ...

  7. html基础之 input:type

    Input表示Form表单中的一种输入对象,其又随Type类型的不同而分文本输入框,密码输入框,单选/复选框,提交/重置按钮等,下面一一介绍.1,type=text输入类型是text,这是我们见的最多 ...

  8. python-整理-面向对象

    python的类和perl的类有相似之处,类的方法的第一个参数是表示类的对象自己,相当于c#的this python中定义类 class person: ''示例类,人'' count=0; def ...

  9. Laravel Packages 开发

    Packages是向Laravel中添加功能最重要的途径.composer.json中require的都是包.关于包的详细说明请查看 API . 下面一起创建一个简单的Package : 1. 环境配 ...

  10. Eddy's digital Roots(九余数定理)

    Eddy's digital Roots Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Oth ...