专栏文章
题解 CF2039C1
CF2039C1题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @miqw0t1j
- 此快照首次捕获于
- 2025/12/04 11:39 3 个月前
- 此快照最后确认于
- 2025/12/04 11:39 3 个月前
题意:
在区间 中,有多少个数 使得 是 或 的因数。
思路:
发现 的范围并不大。而且我们有一个显而易见的性质:当 且 的二进制最高位大于 时, 一定大于 且小于 (当然也不会等于 ),条件不可能满足。
因此,只需要枚举 到 的所有数,判断是否满足条件即可。
程序如下:
CPP#include<cstdio>
#include<vector>
using namespace std;
const int N=5e5+5;
int T;
int main(){
scanf("%d",&T);
while(T--){
int x,ans=0;
long long m;
scanf("%d%lld",&x,&m);
for(int i=1;i<=m&&i<=(x<<1);i++){
if(i==x)continue;
int res=x^i;
if(i%res==0||x%res==0)ans++;
}
printf("%d\n",ans);
}
return 0;
}
THE END
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...