void init() { f[0][0]=1; int i,j; for(i=1;i<=31;i++) { f[i][0]=f[i-1][0]; for(j=1;j<=i;j++) f[i][j]=f[i-1][j]+f[i-1][j-1]; } } int calc(int x,int k)//计算[0x]里含有k个1的数的个数 { int i; int tol=0,ans=0; for(i=31;i>=0;i--) { if(x&(1<<i)) { x^=(1<<i); ans+=f[i][k-tol]; tol++; if(tol>k) break; } } if(tol+x==k) ans++; return ans; }
|
|
CALENDER
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
---|
30 | 31 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|
公告
留言簿(8)
随笔分类
随笔档案
ACM Teammates
The One
搜索
积分与排名
最新评论
阅读排行榜
评论排行榜
Powered By: 博客园 模板提供:沪江博客
|