GCD XOR(UVa 12716)
题意:输入整数n(1<=n<=30000000),有多少对整数(a,b)满足1<=b<=a<=n,且gcd(a,b)=a xor b。
题解:设c=gcd(a,b),因为a-b<=a xor b,且a-b>=c,假设存在c是的a-b>c,则c<a-b<=a xor b,与c= a xor b矛盾。所以c =a-b。所以枚举a和c,计算b=a-c,则gcd(a,b)=gcd(a,a-c)=c,因此只需要验证是否有c= a xor b即可。
a-b<=a xor b ,因为异或运算是不同的话为一。所以除非a=b否则a xor b必定大于a-b(a>=b),因为在二进制位中,对于每一位,a-b只要是不同,那么必定是正或负,而对于啊xorb来说,只要是不同就是正,由于相同的在2种运算中都是0,因而无影响。由上述推理可得a xor b必定大于或者等于a-b(a>=b)。(xor 表示异或)。
#include<cstdio>
#include<cstring>
using namespace std; const int M = ;
int cnt[M+], sum[M+]; void init() {
memset(cnt, , sizeof(cnt));
for(int c = ; c <= M; c++)
for(int a = c*; a <= M; a += c) {///因为a>=b,所以需要从2*c开始枚举
int b = a - c;
if(c == (a ^ b)) cnt[a]++;///统计每个a对应的b的数量
}
sum[] = ;
for(int i = ; i <= M; i++) sum[i] = sum[i-] + cnt[i];
} int main(){
init();
int T, n, kase = ;
scanf("%d", &T);
while(T--) {
scanf("%d", &n);
printf("Case %d: %d\n", ++kase, sum[n]);
}
return ;
}
GCD XOR(UVa 12716)的更多相关文章
- GCD XOR UVA 12716   找规律  给定一个n,找多少对(a,b)满足1<=b<=a<=n,gcd(a,b)=a^b;
		
/** 题目:GCD XOR UVA 12716 链接:https://vjudge.net/problem/UVA-12716 题意:给定一个n,找多少对(a,b)满足1<=b<=a&l ...
 - UVA.12716 GCD XOR (暴力枚举 数论GCD)
		
UVA.12716 GCD XOR (暴力枚举 数论GCD) 题意分析 题意比较简单,求[1,n]范围内的整数队a,b(a<=b)的个数,使得 gcd(a,b) = a XOR b. 前置技能 ...
 - uval 6657 GCD XOR
		
GCD XORGiven an integer N, nd how many pairs (A; B) are there such that: gcd(A; B) = A xor B where1 ...
 - GCD XOR    uvalive6657
		
GCD XORGiven an integer N, nd how many pairs (A; B) are there such that: gcd(A; B) = A xor B where1 ...
 - UVa 12716 - GCD XOR(筛法 + 找规律)
		
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
 - UVa 12716 (GCD == XOR) GCD XOR
		
题意: 问整数n以内,有多少对整数a.b满足(1≤b≤a)且gcd(a, b) = xor(a, b) 分析: gcd和xor看起来风马牛不相及的运算,居然有一个比较"神奇"的结论 ...
 - UVA 12716  GCD XOR
		
https://vjudge.net/problem/UVA-12716 求有多少对整数(a,b)满足:1<=b<=a<=n,且gcd(a,b)=a XOR b 结论:若gcd(a, ...
 - UVA 12716 GCD XOR (异或)
		
题意:求出[1,n]中满足gcd(a,b)=a xor b,且1<=a<=b<=n的对数 题解:首先a xor b = c,则a xor c = b,而b是a的约数,则可以使用素数筛 ...
 - UVA 12716 GCD XOR(数论+枚举+打表)
		
 题意:给你一个N,让你求有多少组A,B, 满足1<= B <= A <= N, 且 gcd(A,B) = A XOR B. 思路:首先我们能够得出两个结论: A-B > ...
 
随机推荐
- 自动化测试系列:自动化测试KPI考评的一种方法
			
更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 原文链接:http://www.cnblogs.com/zishi/p/6856204.html 众所周知,在IT ...
 - CSS布局学习(三) - Normal Flow 正常布局流(官网直译)
			
默认情况下,元素是如何布局? 首先,取得元素的内容,加上内边距(padding),边框(border),外边距(margin)放在一个盒子中 - 这就是我们之前看到的盒子模型 默认情况下,块级元素的内 ...
 - laravel框架——Excel导入导出
			
一.composer安装PHPExcel插件 1.在框架根目录下安装依赖 composer require "maatwebsite/excel:~2.1.0" 2.打开框架在co ...
 - wrk 压测中请求无法响应问题解决过程
			
================= 遇到问题 =================$ 直连压测 wrk -c10000 -t100 -d100m http://localhost:9981/order/ ...
 - Maven 的 settings.xml 配置中的mirror节点
			
maven2的setting.xml大家都知道,里面有个mirrors节点,用来配置镜像URL. mirrors可以配置多个mirror,每个mirror有id,name,url,mirrorOf属性 ...
 - PHP设计模式概念
			
设计模式(Design Pattern)是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案 设计模式并不直接用来完成代码的编写,而是描述在各种不同情况下,要怎么解决问题的一种方案.面向对象 ...
 - Openstack官网文档简介
			
OpenStack documentation相关文档见 docs.openstack.org. 主要包含这些方面的文档: Installation Guides Deployment Guides ...
 - jq初入行常用动画
			
--jq动画分类--(1)jQuery的动画其实就是将之前提到过的各种特效进行封装,并对其性能进行优化.(2)jQuery动画分为三个部分:非自定义动画,自定义动画,和全局动画设置. 一.非自定义动画 ...
 - CSS清除浮动的方法及优缺点
			
浮动是CSS布局里面用的比较多的属性.浮动的框向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止. 因为浮动会使当前元素产生向上浮的效果,所以浮动的元素会脱离正常的文档流,它包围的内容在 ...
 - MongoDB 教程(七):插入文档、更新文档、删除文档
			
MongoDB 插入文档 文档的数据结构和JSON基本一样. 所有存储在集合中的数据都是BSON格式 —— BSON是一种类json的二进制形式的存储格式,简称Binary JSON. MongoDB ...