【数学】异或

异或

题目大意

问你不小于nnn的数对(a,b)(a,b)(a,b),有多少个满足gcd(a,b)=a⊕bgcd(a,b)=a \oplus bgcd(a,b)=ab

输入样例#1

12

输出样例#1

8

输入样例#2

123456

输出样例#2

214394

数据范围

测试点数据规模
110
2100
31000
45000
510000
6100000
7500000
81000000
95000000
1020000000

解题思路

我们设c=gcd(a,b)c=gcd(a,b)c=gcd(a,b)
我们可以枚举ccc
然后枚举aaaccc的多少倍
由此得出a,ca,ca,c
我们可以通过gcdgcdgcd求出bbb然后判断是否满足a⊕b=ca \oplus b=cab=c
但是这个时间复杂度过大,我们要进行优化


我们先证明a−b⩽a⊕ba-b \leqslant a \oplus babab
我们观察以下两个字符串(x>y)(x>y)x>y
x:x:x: 11001
y:y:y: 00101
xor:xor:xor: 11100
1...对于x,yx,yx,y都是1的位xorxorxor−-得出结果都是0

2...对于只有yyy是1的位
因为a>ba>ba>b,所以在更高的位肯定有只有xxx是1的位,这样减出来的结果才可能是正数
因此−-得出的结果是更高一位只有xxx是1的位减这一位
xorxorxor得出的是这两位的和

3...对于只有xxx是1且无需用去减的位xorxorxor−-得出结果都是1
综上所述,a−b⩽a⊕ba-b \leqslant a \oplus babab


现在我们来证明c⩽a−bc \leqslant a-bcab
因为c=gcd(a,b)c=gcd(a,b)c=gcd(a,b)
我们设
a=c∗asa=c*asa=cas
b=c∗bsb=c*bsb=cbs

a=ba=ba=b
gcd(a,b)=1gcd(a,b)=1gcd(a,b)=1
a⊕b=0a \oplus b=0ab=0
gcd(a,b)≠a⊕bgcd(a,b) \neq a \oplus bgcd(a,b)=ab
∴a≠b\therefore a \neq ba=b

∵a≠b且a⩾b\because a \neq b 且a \geqslant ba=bab
a>ba > ba>b
∵as>bs\because as > bsas>bs
as−bs⩾1as - bs\geqslant 1asbs1
(as−bs)×c⩾c(as - bs)\times c \geqslant c(asbs)×cc
a−b⩾ca-b\geqslant cabc
a−b≠ca-b\neq cab=c
c<a−b⩽a⊕bc < a-b \leqslant a \oplus bc<abab
c<a⊕bc<a \oplus bc<ab
无法满足c=a⊕bc=a \oplus bc=ab
∴a−b=c\therefore a-b=cab=c
这样我们通过b=a−cb=a-cb=ac求出bbb
然后判断ccc是否等于a⊕ba \oplus bab即可

代码

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define ll long long
using namespace std;
int n, a, b, ans;
int main()
{scanf("%d", &n);for (int i = 1; i <= n / 2; ++i)for (int j = 2; i * j <= n; ++j){a = i * j;b = a - i;//求bif (i == (a^b)) ans++;}printf("%d", ans);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/320180.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分布式事务解决方案以及 .Net Core 下的实现(上)

数据一致性是构建业务系统需要考虑的重要问题 &#xff0c; 以往我们是依靠数据库来保证数据的一致性。但是在微服务架构以及分布式环境下实现数据一致性是一个很有挑战的的问题。最近在研究分布式事物&#xff0c;分布式的解决方案有很多解决方案&#xff0c;也让我在研究的同…

[AGC014D] Black and White Tree(树形DP,博弈)

每次找到所有叶子节点&#xff0c;把它们的父亲染白&#xff0c;自己染黑。这个时候染完的叶子节点及其父亲节点对树的其他部分已无影响 ,可以直接删掉。 那么只需要判断树的其他部分是否有先手必胜策略即可。用递归遍历。 边界条件&#xff1a;若树为单一节点先手必胜。 代…

【每日一题】5月7日题目精讲 「火」皇家烈焰

链接&#xff1a; 「火」皇家烈焰 文章目录题目描述题解&#xff1a;代码&#xff1a;时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K 64bit IO Format: %lld题目描述 帕秋莉掌握了一种火属性魔法 由于钟爱扫…

【最小生成树】灌水

灌水 题目大意 给你n个点&#xff0c;你可以在某个点建水库&#xff08;生产水&#xff09;&#xff0c;或从其他有水的点建水管送过来 现在问你让所有点都有水的最小代价是多少 输入样例 4 5 4 4 3 0 2 2 2 2 0 3 3 2 3 0 4 2 3 4 0输出样例 9样例解释 FarmerJohnFarmer …

P6257-[ICPC2019 WF]First of Her Name【AC自动机】

正题 题目链接:https://www.luogu.com.cn/problem/P6257 题目大意 给出一个字典树&#xff0c;kkk次询问求每个节点出发到根节点的路径有多少包含前缀sis_isi​。 解题思路 我们按照所有询问串的反串构造ACACAC自动机。 那么此时如果我们用一个串SSS上去跑匹配的话&#xf…

微软MVP张善友告诉你,微服务选型要注意这些地方

周六的下午&#xff0c;广州周大福金融中心的写字楼静悄悄的&#xff0c;53楼的实盈多功能会议室却异常火爆&#xff0c;热闹非凡。来自广州各大科技公司的技术小伙伴们齐聚一堂&#xff0c;他们都在期待着一个人&#xff0c;那就是——微软MVP张善友和他带来的 .NET Core 微服…

像鱼

链接&#xff1a; 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K 64bit IO Format: %lld题目描述 给你一个边长为 n 的用硬币摆成的实心三角形&#xff0c;请问把他倒过来最少需要多少步&#xff1f; 例子…

[ZJOI2005]午餐(贪心+dp)

首先若只有一个窗口&#xff0c;利用贪心&#xff0c;按吃饭时间从大到小排序即可 正确性证明&#xff1a; 定义 eat[i] 第i个人的吃饭时间&#xff0c;time[i] 第i个人的打饭时间 延长时间T[i]max(eat[i]- ∑ji1ntimej\sum\limits_{ji1}^ntime_jji1∑n​timej​ ,0) 最后…

【图论】【模板】静态仙人掌(luogu 5236)

【模板】静态仙人掌 题目大意 给你一个无向仙人掌图&#xff08;保证每条边至多出现在一个简单回路中的无向图&#xff09;&#xff0c;问你两个点之间的最短路距离 输入样例#1 9 10 2 1 2 1 1 4 1 3 4 1 2 3 1 3 7 1 7 8 2 7 9 2 1 5 3 1 6 4 5 6 1 1 9 5 7输出样例#1 5 …

Wannafly挑战赛24D-无限手套【dp,生成函数】

正题 题目链接:https://ac.nowcoder.com/acm/contest/186/D 题目大意 mmm个二元组(ai,bi)(a_i,b_i)(ai​,bi​)&#xff0c;对于一个序列xxx的贡献是∏i1n(aixi2bixi1)\prod_{i1}^n(a_ix_i^2b_ix_i1)i1∏n​(ai​xi2​bi​xi​1) qqq次询问给出nnn求在xi≥0x_i\geq 0xi​≥0且…

SCF: 简单配置门面

Simple Configuration Facade, 简写为 SCF。是 代码 和 外部配置 (properties文件, 环境变量&#xff0c;系统/命令行参数, yaml文件, 等等)之间的一层抽象. 命名上和另一个著名组件slf4j (Simple Logging Facade for Java)相似, 在配置领域的地位也和slf4j &#xff08;.NET可…

字符串(AC自动机(fail tree))

传送门 注意&#xff1a;注释中的那段代码是不能用的 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<queue> using namespace std; typedef long long ll; const int N2000010; struct Edge{int v,nxt;}ed…

武汉工程大学2020GPLT选拔赛(上)

比赛链接 A L1-1 I LOVE WIT 模拟&#xff0c;每个字母单独一行&#xff0c;前面的空格按规律输出。可以直接输出&#xff0c;也可以模拟过程 #include<bits/stdc.h> using namespace std; int main(){string s"I LOVE WIT";for(int i0;i<s.size();i){fo…

【矩阵乘法】【倍增】美食家(luogu 6772)

美食家 题目大意 给你一个有向图&#xff0c;边权为经过所需时间 每个点有一个点权&#xff0c;有些点还有有特殊的点权 当你到达一个点后&#xff0c;可以获得该点的点权&#xff08;重复经过可以重复获得&#xff0c;但不能停留&#xff09;&#xff0c;若在某个时间到某个…

.net core实践系列之短信服务-为什么选择.net core(开篇)

前言从今天我将会写.net core实战系列&#xff0c;以我最近完成的短信服务作为例子。该系列将会尽量以最短的时间全部发布出来。源码也将优先开源出来给大家。源码地址&#xff1a;https://github.com/SkyChenSky/Sikiro.SMS.NET CORE简介ASP.NET Core 是一个跨平台的高性能开源…

P3172-[CQOI2015]选数【dp,容斥】

正题 题目链接:https://www.luogu.com.cn/problem/P3172 题目大意 求有多少个长度为NNN的值域在[L,R][L,R][L,R]这个区间的序列满足它们的gcdgcdgcd恰好是KKK。 解题思路 dpdpdp容斥思想 我们先让L⌊LK−1K⌋,R⌊RK⌋L\lfloor\frac{LK-1}{K}\rfloor,R\lfloor\frac{R}{K}\rfl…

博弈论总结

前言 本篇为博弈论总结&#xff0c;文章会按题目类型分类。 基础铺垫——必胜点和必败点的介绍 P点&#xff1a;必败点&#xff0c;换而言之&#xff0c;就是谁处于此位置&#xff0c;则在双方操作正确的情况下必败。 N点&#xff1a;必胜点&#xff0c;处于此情况下&#x…

牛客网【每日一题】5月8日题目精讲 codeJan与旅行

比赛链接&#xff1a; 文章目录题目描述题解&#xff1a;时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K 64bit IO Format: %lld题目描述 codeJan 非常喜欢旅行。现在有 n 个城市排在一条线上&#xff0c;并…

.netcore consul实现服务注册与发现-集群完整版

一、Consul的集群介绍Consul Agent有两种运行模式&#xff1a;Server和Client。这里的Server和Client只是Consul集群层面的区分&#xff0c;与搭建在Cluster之上的应用服务无关&#xff0c; 以Server模式运行的Consul Agent节点用于维护Consul集群的状态&#xff0c;官方建议每…

【矩阵乘法】【倍增】WYC(luogu 3597)

WYC 题目大意 给你一个有向图&#xff0c;让你求图中的kkk短路&#xff08;非简单路径&#xff09; 输入样例# 6 6 11 1 2 1 2 3 2 3 4 2 4 5 1 5 3 1 4 6 3输出样例#1 4数据范围 1⩽n⩽40&#xff0c;1⩽m⩽1000&#xff0c;1⩽k⩽10181\leqslant n\leqslant 40&#xff…