嘿嘿嘿,又是一发水题……

【传送门】:http://codevs.cn/problem/1083/

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>原题>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

1083 Cantor表                                1999年NOIP全国联赛普及组

时间限制: 1 s
空间限制: 128000 KB
题目等级 : 白银 Silver

题目描述 Description

现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的: 1/1 1/2 1/3 1/4 1/5 … 2/1 2/2 2/3 2/4 … 3/1 3/2 3/3 … 4/1 4/2 … 5/1 … … 我们以Z字形给上表的每一项编号。第一项是1/1,然后是1/2,2/1,3/1,2/2,…

输入描述 Input Description

整数N(1≤N≤10000000)

输出描述 Output Description

表中的第N项

样例输入 Sample Input

7

样例输出 Sample Output

1/4

数据范围及提示 Data Size & Hint

见描述
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>题目分析>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
一眼看去,还以为要一个个枚举,把整个表打出来,然后发现图越看越熟悉,将图旋转一下,这不就是小学书上的数字三角之类的吗mdzz……

很明显的嘛*&¥……不是吗?

嗯,然后呢,可以发现每行结束【单数行的结束的数在最右边,偶数行相反】的数的序号很明显就是【i表示第i行】【就是那个高斯求和公式(首项+末项)*项数/2  化简后得出的结果】,而每行的开始那个数的序号就是-i+1 , 所以要想知道给定序号的数在第几行,就可以从第一行到4500行进行枚举【这个4500是我用FOR循环估算出当n=4500时大致接近10000000时(大概一千万过一点)】,当第一次发现给出的n小于时就说明找到了第n个所在的行数i,然后进行处理后跳出循环输出结果就OK了啊

然后发现数的规律【一下都是旋转之后的状态】是单数行的分子都是从左往右递增,偶数行的分子从右往左递增,对应行的分母刚好相反滴,知道规律就好办了嘛……不说了,上代码……

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>我的代码>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>


var
u,d,n,i:longint;
begin
read(n);
for i:= 1 to 4500 do
if (i+i*i) div 2>= n then

                     begin
if odd(i) then begin//如果是单数行就是分子从左往右递增,

                                          u:=(i+i*i) div 2-n+1;
d:= n+i-(i+i*i) div 2;
end
else begin//偶数行和单数行相反
d:=(i+i*i) div 2-n+1;
u:= n+i-(i+i*i) div 2;
end;
break;//别忘记跳出循环
end;
write(u,'/',d);//输出结果
end.

嘿嘿嘿,其实在guide上调试完成后提交,结果发现一次性通过,感动得那是……

【哎呀~码字码的好幸苦……如果对你有帮助的话,麻烦在下面咩个声呗……谢谢

转载于:https://www.cnblogs.com/bobble/p/5744734.html

【1083】code[vs] 1083 Cantor表 1999年NOIP全国联赛普及组相关推荐

  1. 棋盘型动态规划 之 CODE[VS] 1169 传纸条 2008年NOIP全国联赛提高组

    /* 这道题要解决两个问题1)状态和状态方程2)怎么保证每走一步,所形成的路径不相交,以保证最后生成的完整路径不相交.(1)状态: dp[i][j][k][l] = 小渊传递的纸条到[i][j]的位置 ...

  2. CODE[VS] 1098 均分纸牌 ( 2002年NOIP全国联赛提高组)

    arr[i] :表示每个牌堆的纸牌的数目 平均值 :当纸牌数都一样多时,纸牌的数目从左向右考虑,每堆纸牌有三种状态: 1) arr[i] == 平均值,考虑arr[i+1] 2) arr[i] < ...

  3. 1083 Cantor表

    1083 Cantor表 1999年NOIP全国联赛普及组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 白银 Silver 题目描述 Description 现代数学的著名 ...

  4. 【CodeVS】1083 Cantor表

    1083 Cantor表 1999年NOIP全国联赛普及组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题目描述 Description 现代数学的著名证明之 ...

  5. Cantor表 [cantor]

    题目描述: 现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的.他是用下面这一张表来证明这一命题的: 我们以Z字形给上表的每一项编号.第一项是1/1,然后是1/2,2/1,3/1, ...

  6. 洛谷——P1014 Cantor表

    P1014 Cantor表 题目描述 现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的.他是用下面这一张表来证明这一命题的: 1/1 1/2 1/3 1/4 1/5 - 2/1 ...

  7. 算法题——Cantor表

    题目介绍 描述 现代数学的著名证明之一是 Georg Cantor 证明了有理数是可枚举的.他是用下面这一张表来证明这一命题的: 1/1, 1/2 , 1/3, 1/4, 1/5, - 2/1, 2/ ...

  8. luogu Cantor表

    P1482 Cantor表 我并不知道为什么我只得了20分! #include<iostream> #include<cstdio>using namespace std;in ...

  9. 洛谷——P1482 Cantor表(升级版)

    P1482 Cantor表(升级版) 题目描述 现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的.他是用下面这一张表来证明这一命题的: 1/1 1/2 1/3 1/4 1/5 - ...

  10. 洛谷——P1014 [NOIP1999 普及组] Cantor 表

    P1014 [NOIP1999 普及组] Cantor 表 题目描述 现代数学的著名证明之一是 Georg Cantor 证明了有理数是可枚举的.他是用下面这一张表来证明这一命题的: 1/11/1 , ...

最新文章

  1. Docker集群管理工具-Kubernetes部署记录
  2. flask常见面试题
  3. springboot 定时器_基于SpringCloud?+?SpringBoot的 SaaS型微服务脚手架源码分享
  4. Python内置函数filter()和匿名函数lambda解析
  5. fork与操作文件的系统调用问题
  6. 【开源项目】C++BASE64图像编解码算法
  7. Eclipse出现the type java.lang.CharSequence can't be resolved.
  8. XML和HTML的区别
  9. java 将 ResultSet 转化为 json格式
  10. internet与Internet的区别
  11. POM文件Unknown报错
  12. ros机器人编程实践(12.2)- 用turtlebot仿真巡线机器人
  13. html的reset按钮的作用简单介绍
  14. .Net Core开发学习(一) ——Startup 类
  15. 【文献笔记】NOMA+D2D模型3 (D2D group)
  16. Linux系统(三) 系统基础
  17. hdu4489(递推)
  18. android如何屏蔽掉home键
  19. 快速列出字母+数字的全部组合
  20. html布局优先级,iOS Masonry 设置布局优先级。

热门文章

  1. python 读取xml内容
  2. Dockerfile自动创建镜像
  3. Error mounting /dev/sdc1 at /media/XXXX: Command-line `mount -t “ntfs“ -o
  4. python读取图片路径f.read()转化为bytes类型
  5. 如何用yolov5测试图片
  6. 多片段时序数据建模预测实践
  7. 基于LSTM+Attention机制的IMDB影评数据分类学习实践
  8. python找到两个有序列表的中位数
  9. Python3 类(2)
  10. java反射 获取方法_java反射——获取类的方法信息