Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
173630 | B班-陈曦 | 二进制计数游戏 | C++ | 无测评数据 | 0 | 0 MS | 0 KB | 528 | 2024-08-20 22:26:21 |
#include <bits/stdc++.h> using namespace std; const int M=65; long long n,s,t,f[M][M]; long long K(int x) { int len,b[M]; for(len=0;x>0;x/=2) b[len++]=x%2; long long ans=0; for(int i=0,c=0;i<len&&c<n;++i) if(b[len-i-1]==1){ ans+=f[len-i-1][n-c]; c++; } return ans; } int main() { cin>>n>>s>>t; for(int i=0; i<M; ++i) f[i][0]=1,f[0][i]=1; for(int i=1;i<M;++i) for(int j=1; j<M; ++j) f[i][j]=f[i-1][j]+f[i-1][j-1]; cout<<K(t)-K(s-1); return 0; }