Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
173601 | C班-杨渔 | 二进制计数游戏 | C++ | 无测评数据 | 0 | 0 MS | 0 KB | 523 | 2024-08-20 21:59:30 |
#include <iostream> #define d64 long long using namespace std; d64 n,s,t,f[100][100]; d64 CC(d64 num) { int len,a[50]; for (len=0;num>0;num/=2) a[len++]=num%2; d64 ans=0; for (int i=0,cnt=0;i<len && cnt<n;++i) { if (a[len-i-1]==1) { ans+=f[len-i-1][n-cnt]; ++cnt; } } return ans; } int main() { cin>>n>>s>>t; for (int i=0;i<50;++i) f[i][0]=f[0][i]=1; for (int i=1;i<50;++i) for (int j=1;j<50;++j) f[i][j]=f[i-1][j]+f[i-1][j-1]; cout<<CC(t)-CC(s-1); return 0; }