题意:给出N,1<=b<=a<=N,求满足gcd(a,b)=a xor b的pair (a,b)的个数

有个重要的结论:若gcd(a,b)=a xor b=c,那么b=a-c

如果一个个求gcd肯定不行。

令f[i]表示满足条件的pair (a,b)中,a=i的个数

枚举c,令a是c的所有倍数,求出b=a-c。若b=a xor c那么f[a]++

最后求f[]的前缀和S[],那么答案就是S[N](要求a<=N啦~)

 #include <stdio.h>
#include <string.h>
#define LL long long
#define MX 30000005 int N,T;
LL S[MX],f[MX]; int main()
{
memset(f,,sizeof(f));
for (int c=;c<=MX;c++)
for (int a=*c;a<=MX;a+=c)
{
int b=a-c;
if ((a^b)==c)
{
//printf("%d %d %d %d\n",a,b,a^b,c);
f[a]++;
}
} S[]=f[];
for (int i=;i<=MX;i++)
{
//printf("%d ",f[i]);
S[i]=S[i-]+f[i];
} scanf("%d",&T);
for (int times=;times<=T;times++)
{
scanf("%d",&N);
printf("Case %d: %lld\n",times,S[N]);
} return ;
}

reference:http://blog.csdn.net/u013451221/article/details/38512091

uva12716 gcd的更多相关文章

  1. uva12716 GCD XOR

    个人博客:http://acbingo.cn/2015/06/04/uva12716/ 被紫薯上*和素数筛法类似*这句话给误解了= =,一直以为存在某种关系,在枚举c或者a时,可以根据当前的答案,筛掉 ...

  2. UVA12716 GCD XOR 数论数学构造

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u010682557/article/details/36204645 题目给你一个N,让你求 两个数 ...

  3. 题解 UVA12716 GCD等于XOR GCD XOR

    规律题,打表找规律即可发现 a xor b >= a - b >= gcd(a, b), 如果 a xor b = gcd(a, b) = c 则 c = a - b 枚举倍数c和a判断b ...

  4. GCD XOR, ACM/ICPC Dhaka 2013, UVa12716

    不同的枚举方法,效率完全不同.值得记录一下! #include <cstdio> #include <cstring> , count = ; ]; void pre() { ...

  5. UVa12716:gcd等于xor(打表+类素数筛+差分约束)

    紫书给的分析缺少一些证明性的东西,将我自己的OneNote笔记贴在这里.

  6. UVA 12716 GCD XOR

    https://vjudge.net/problem/UVA-12716 求有多少对整数(a,b)满足:1<=b<=a<=n,且gcd(a,b)=a XOR b 结论:若gcd(a, ...

  7. 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 ...

  8. GCD 与XOR

    题目:UVA12716 题意:  问 gcd(i,j) = i ^ j  的对数(j <=i <= N ) N的范围为30000000,有10000组样例 分析: 有几个结论:(1)若 a ...

  9. Uva12716 素数筛思想的应用

    Uva12716 题意: 输入整数n,1<= n <=3e7,问有多少个整数对(a,b)满足:1 <= b <= a <= n,且gcd(a,b)== a XOR b 解 ...

随机推荐

  1. Camera.Parameters 参数

    public class Camera.Parameters extends Object java.lang.Object    ↳ android.hardware.Camera.Paramete ...

  2. Ultra-QuickSort

    Description In this problem, you have to analyze a particular sorting algorithm. The algorithm proce ...

  3. Orchard CMS中如何打包不带源码的模块

    在Orchard CMS的官网已经提供了文档说明如何打包,但是如果使用它的打包方式,打好的nuget包是带源代码的.如果是为开源系统写模块,不需要关注源代码是否可见.但是如果是用Orchard CMS ...

  4. [JAVA教程] 2016年最新spring4框架搭建视频教程 【尚学堂】

    Spring4框架 主讲:邹波 类型:SSH 适合对象:学习完javase.数据库技术.jdbc者 Spring4.0作为一个广泛使用的开源框架,它由Rod Johnson创建.它是为了解决企业应用开 ...

  5. Java7并发编程实战(一) 线程的中断

    控制线程中断的方法一般常规是定义一个布尔值,然后while(布尔值) 去执行,当想停止该线程时候,把布尔值设为false. 这里我们来看第二种,Interrupt 该例子模拟一个线程从1打印到10,然 ...

  6. 「拉勾网」薪资调查的小爬虫,并将抓取结果保存到excel中

    学习Python也有一段时间了,各种理论知识大体上也算略知一二了,今天就进入实战演练:通过Python来编写一个拉勾网薪资调查的小爬虫. 第一步:分析网站的请求过程 我们在查看拉勾网上的招聘信息的时候 ...

  7. 你了解javascript中的function吗?(1)

    上一篇文章中 介绍了function在javascirpt作为一等公民所担任的重要责任,在不同 的上下文中它担任着不同的角色,在对象内部它可以是函数,同时又能充当名字空间,不仅如此所有的functio ...

  8. CMD命令简单使用

    1.定位磁盘 2.打开文件路径 3.查看文件目录里面所有的文件或目录信息

  9. php 升级php5.5

    rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm yum install php55w php55w-opcache yum install ...

  10. ajax post(copy part)

    srcpage var q=new XMLHttpRequest(); var data='usr=weidiao&pwd=haha'; data=encodeURI(data); var u ...