枚举法、穷举法
来源:互联网 发布:php支付宝接口开发文档 编辑:程序博客网 时间:2024/06/10 15:18
首先是一道暴力枚举的例题,然后陈述枚举法的定义和暴力指的是什么意思;
题目描述
有一天,mirror给了kyoma一个数x,让kyoma找到一个正整数y>=2,使得y-x的绝对值最小。
但是kyoma觉得这样做太简单了,于是她反问mirror,要求在满足上一个条件的同时,这个y中的每个质因数均恰好出现2次。
mirror感到很困难,你能够帮帮她吗?
但是kyoma觉得这样做太简单了,于是她反问mirror,要求在满足上一个条件的同时,这个y中的每个质因数均恰好出现2次。
mirror感到很困难,你能够帮帮她吗?
输入
第一行输入一个整数T(1<=T<=50)
每组数据有一行,一个整数x(1<=x<=10^18)
每组数据有一行,一个整数x(1<=x<=10^18)
输出
对于每组数据,输出一行y-x的最小绝对值
样例输入
511124290871699579095
样例输出
23656724470
一、题目信息:
1.绝对值——>y可能比x小,可能比x大,但是满足条件的y一定是在x周围的——>while(x--) while(x++)
2.质因数(把喵喵坑的好苦啊)——>给定一个数n,n的因数是质数,则称该数为质因数
3.y中的每个质因数均恰好出现两次——>y一定是一个平方数——>y一定是一个合数——>合数可以表示成若干个质数相乘的形式
↓
从2开始验证,在sqrt(y)中只能出现一次,出现两次以上,该数一定不符合条件,且通过验证的数一定是质数
二、代码实现:
typedef long long ll;
while(t--) (我学了一些小改变)
(声明:完全是个人理解,不是课本上的官方定义,有理解不对的地方,求求你告诉我)
暴力法:从题意出发,不运用什么技巧,按照题目的条件或者是数学公式,顺序解题。
(在暴力的过程中可能会发现简单解题的方法,例如:含有多个变量的等式,可能可以减少变量,从而可能减少循环)
枚举法与穷举法:根据题目给出的限制条件,挨个数据进行检验,最终找出符合条件的答案。(在范围内,挨个判断挨个找)
枚举法的缺点:数据量大的话会导致时间崩溃
枚举的一般结构:while循环
枚举解题的基本思路:
1.确定枚举对象,枚举范围和判断条件
2.枚举可能的解,验证
经典问题:百钱买百鸡
有一个人有一百块钱,打算买一百只鸡。到市场一看,大鸡三块钱一只,小鸡一块钱三只,不大不小的鸡两块钱一只。现在,请你编一程序,帮他计划一下,怎么样买法,才能刚好用一百块钱买一百只鸡?
0 1
- 枚举法、穷举法
- 枚举法(穷举法)
- 枚举法(穷举法)
- 算法:枚举(穷举)法
- 数据结构与算法之枚举(穷举)法 C++实现
- 穷举法
- 穷举法
- 穷举法
- “穷举法”
- 穷举法
- 穷举法
- 穷举法
- 穷举法
- 穷举法
- 穷举法
- 穷举法
- 穷举法
- 穷举法
- Leetcode 132,Palindrome Partitioning 2
- Android 开源框架Universal-Image-Loader解析 基本介绍及使用
- 在Fedora24/25中轻松安装gcc 4.9
- Darwin中RTSP协议的实现
- iOS_为数字键盘增加完成按钮即ToolBar
- 枚举法、穷举法
- ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'
- 【POJ 2104 K-th Number】+ 主席树
- sublime 汉化插件
- hadoop streaming参数配置
- TS文件用vlc播放,seek灰屏问题研究
- 后缀表达式转中缀表达式
- Java的文件操作
- 斗地主AI设计