POJ3252
来源:互联网 发布:福建广电网络 泉州 编辑:程序博客网 时间:2024/04/29 19:12
排列组合。。。
做了好久
#include<cstdio>using namespace std;typedef long long ll;ll a,b,ans;int stack[100],top;ll c(int n,int m){if(m==0){return 1;}ll max=1;ll min=1;if(m>n-m)m=n-m;while(m>0){max*=n--;min*=m--;}return max/min;}void init(ll x){top=0;while(x){if(x%2){stack[top++]=1;}else{stack[top++]=0;}x/=2;}}ll lb(int n0,int n1,int p) //0有n0个 1有n1个 可选择0~p{ll sum=0;int i;for(i=0;i<=p;i++){if(n0+i>=n1+p-i){sum+=c(p,i);}}return sum;}ll fun(ll x,bool &ba){init(x);int i,n0,n1;n0=n1=0;ll sum=0;while(top){top--;if(stack[top]==1){n1++;if(n1+n0==1){for(i=1;i<top;i++){sum+=lb(0,1,i);}}else{sum+=lb(n0+1,n1-1,top);}}else{n0++;}}if(n0>=n1){sum++;ba=true;}return sum;}void cal(){bool ba,bb;ans=fun(b,bb)-fun(a,ba);if(ba){ans++;}}void answer(){printf("%lld\n",ans);}int main(){while(~scanf("%lld%lld",&a,&b)){cal();answer();}return 0;}
- poj3252
- POJ3252
- poj3252
- poj3252
- poj3252
- POJ3252
- poj3252
- poj3252
- poj3252
- POJ3252
- POJ3252 Round Numbers
- POJ3252 Round Numbers
- poj3252 Round Numbers
- POJ3252 RoundNumbers 【组合数学】
- poj3252 组合数学
- poj3252 round number
- poj3252 Round Numbers
- poj3252(组合数学)
- 用vfp的数据库自动生成CursorAdapter类代码
- 打造电商品牌的四个关键和六个诊断指标
- FTP磁盘配额和访问时间控制
- 学习资源
- 人人网SDK Demo项目学习 3 在apilist中绑定事件调用Activity
- POJ3252
- Android显示系统之View与SurfaceView更新屏幕的区别
- java-哪些东西会被JVM回收
- Android网络编程
- 又到找工作季了
- 众数
- 通过DNS实现DVR的网络访问功能
- extern、头文件
- 堆和栈的区别(转)