Cantor表
时间:2019-09-25
本文章向大家介绍Cantor表,主要包括Cantor表使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
链接:https://ac.nowcoder.com/acm/problem/16785
来源:牛客网
题目描述
现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的:
我们以Z字形给上表的每一项编号。第一项是1/1,然后是1/2,2/1,3/1,2/2,…
输入描述:
整数N(1≤N≤10000000)
输出描述:
表中的第N项
示例1
输出
复制1/4
#define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<algorithm> #include<cmath> using namespace std; int a[10000010],b[10000010]; int main() { int n; cin >> n; a[1] = 1; b[1] = 1; int right = 1;int left = 0; for (int i = 2; i <= 10000000; i++) { if (right == 1) { a[i] = a[i - 1] + 1; if (b[i - 1] == 1) { right = 0; left = 1; b[i] = 1; } if(b[i-1]!=1) { b[i] = b[i - 1] - 1; } } else if (left == 1) { b[i] = b[i - 1] + 1; if (a[i - 1] == 1) { right = 1; left = 0; a[i] = 1; if (i == 3) { i++; b[i] = 3; a[i] = 1; } } if(a[i-1]!=1) a[i] = a[i - 1] - 1; } } cout << b[n]<<"/"<<a[n] << endl; while (1); }
遇到的问题:在i=3的时候这是个特殊情况,但被我单独拿出来处理。
解题过程:先是找规律,然后遇见这种有表的题目,便采用列表法,全部枚举出来。
感悟:牺牲空间复杂度来提高时间复杂度,说明这个方法不完美,但是这却是避无可避的
原文地址:https://www.cnblogs.com/pppyyyzzz/p/11588425.html
- 使用 SVG 和 JS 创建一个由星形变心形的动画
- 如何使用 Bootstrap 搭建更合理的 HTML 结构
- Java遍历Map对象的四种方式
- java 线程public void run()中值如何返回
- Jackson与spring框架整合的坑
- spring shiro整合时自动注入的问题
- mybatis获取update的id
- 点击!AWD攻防解题技巧在此!
- Docker 基础技术之 Linux namespace 详解
- Centos6下使用yum安装MariaDB
- Linux下部署Samba服务环境的操作记录
- SCP和Rsync远程拷贝的几个技巧
- Linux服务器更换主板后,网卡识别失败的处理方法
- CTF| 吃个鸡,一起破流量分析题吧!
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- nosql介绍,memrcached介绍,安装memcached,查看memcachedq状态
- 如何在IDEA2017创建Maven的Web工程
- JSP上传文件与导出Excel表
- 关于CentOS中tomcat的8005端口启动不起来的解决办法
- 安装ansible以及简单使用
- 设计模式之职责链
- 转录组分析 | 使用SAMtools将SAM文件转换为BAM文件、排序、建立索引
- Matlab系列之那些数学函数(讨论功能已加入)
- 简单使用saltstack
- CentOS7下搭建postfix邮箱服务器并实现extmail的web访问
- 安装saltstack
- 简单使用jumpserver
- 简单实现MVC模式
- 安装jumpserver
- 第三个页面:构建新闻详情页面