[TOYOTA 2023 Spring Final C] Count Dividing XOR 题解
神仙数学题,有数学竞赛那味了。
有一个重要结论:
所以只用枚举
放代码:
#include<bits/stdc++.h>
#define int long long
using namespace std;
main(){
ios::sync_with_stdio(false);
int l,r,c=0; cin>>l>>r;
for(int i=1;i<=r-l;i++) // 枚举 A^B
for(int j=(l+i-1)/i*i;i+j<=r;j+=i)
c+=(j^i+j)==i; // 如果 j 和 i+j 的异或值为 i,那么这个答案就是合法的
cout<<c<<endl;
return 0;
}