JZOJ.4714【NOIP2016提高A组模拟8.19】公约数
来源:互联网 发布:《算法》pdf 编辑:程序博客网 时间:2024/05/16 00:51
Problem
Description
给定一个正整数,在[1,n]的范围内,求出有多少个无序数对(a,b)满足gcd(a,b)=a xor b。
Input
输入共一行,一个正整数n。
Output
输出共一行,一个正整数表示答案。
Sample Input
3
Sample Output
1
解释:只有(2,3)满足要求
Data Constraint
对于30%的数据满足n<=1000
对于60%的数据满足n<=10^5
对于100%的数据满足n<=10^7
Solution
我们可以知道,对于某一些数对,他们的GCD是相同的,所以我们设a=2n,b=2n+1,只要枚举(ka,kb)(因为gcd(a,b)=1,所以gcd(ka,kb)=k),然后判断一下a^b是否等于k就行了。
当然,还有另外一种更好理解的方法。
我们发现,
所以,如果gcd(a,b)=a^b,那么当且仅当a^b=a-b.
我们枚举b,令a=kb,然后判断a^b是否等于a-b即可。
——2016.8.22
3 0
- [JZOJ 4714]【NOIP2016提高A组模拟8.19】公约数
- JZOJ.4714【NOIP2016提高A组模拟8.19】公约数
- JZOJ 4714 【NOIP2016提高A组模拟8.19】公约数
- 【NOIP2016提高A组模拟8.19】公约数
- 公约数【NOIP2016提高A组模拟8.19】
- 【NOIP2016提高A组模拟8.19】公约数
- jzoj 4714. 【NOIP2016提高A组模拟8.19】公约数 数(luan)学(gao)
- JZOJ.4715【NOIP2016提高A组模拟8.19】树上路径
- JZOJ 4715 【NOIP2016提高A组模拟8.19】树上路径
- 【NOIP2016提高A组模拟8.19】(雅礼联考day2)公约数
- JZOJ 4628 立方体【NOIP2016提高A组模拟7.15】
- JZOJ 4629 修路【NOIP2016提高A组模拟7.15】
- JZOJ 4630 计数【NOIP2016提高A组模拟7.15】
- JZOJ 4603 颜料大乱斗【NOIP2016提高A组模拟7.15】
- JZOJ 4647 寻找 【NOIP2016提高A组模拟7.17】
- JZOJ.4692【NOIP2016提高A组模拟8.14】传送带
- JZOJ.4699【NOIP2016提高A组模拟8.15】Password
- JZOJ 4699 Password【NOIP2016提高A组模拟8.15】
- Linux命令和shell编程学习--14章呈现数据
- oracle笔记2
- AR技术应用 の 如何做一个Pokemon GO这只皮卡丘是你的吗?
- 【mysql】order by limit分页数据重复问题
- iOS蓝牙录音
- JZOJ.4714【NOIP2016提高A组模拟8.19】公约数
- Rails中的config.assets.debug配置项
- 找到图中最小有向圈的一个时间复杂度为O(mn)的算法
- 写一个程序,从文件(c:\test.txt)中查出字符串”mobnet”出现的次数?
- 数据对接中的安全性保证及接口设计
- poj3292 Semi-prime H-numbers
- 树-堆结构练习——合并果子之哈夫曼树
- 利用pair,sort,unique去重
- C语言再学习 -- 声明与定义