poj 3252 Round Numbers 组合数学
来源:互联网 发布:qq网络营销软件 编辑:程序博客网 时间:2024/04/30 12:54
组合数学的题目。
公式自己推,注意边界条件。
#include <iostream>
#include <cstdio>#include <cstring>
using namespace std;
const int maxn=101;
int a[maxn];
long long cal(int a,int b)
{
if(b>a-b) b=a-b;
long long ans=1;
int m=b;
for(int i=a;i>a-b;i--)
{
ans*=i;
// printf("%lld\n",ans);
while(ans%m==0&&m>1)
ans/=m--;
}
return(ans);
}
long long work(int n)
{
long long ans=0;
int tt=0;
while(n)
{
a[++tt]=n%2;
n/=2;
}
for(int i=1;i<tt;i++)
{
for(int j=(i-1)/2+1;j<i;j++)
ans+=cal(i-1,j);
}
int c[2]={0,1};
int sum=tt/2;
if(tt&1) sum++;
for(int i=tt-1;i>=1;i--)
{
if(a[i]==1)
{
for(int j=max(sum-1-c[0],0);j<i;j++)
ans+=cal(i-1,j);
}
c[a[i]]++;
}
return(ans);
}
int main()
{
int n,m;
scanf("%d %d",&n,&m);
// for(int i=1;i<=100;i++)
// work(i+1);
// printf("%d %lld\n",i,work(i+1));
printf("%lld\n",work(m+1)-work(n));
return 0;
}
- poj 3252 Round Numbers 组合数学
- POJ 3252 Round Numbers(组合数学)
- poj 3252 Round Numbers 组合数学
- poj 3252 Round Numbers (组合数学)
- POJ 3252 Round Numbers(组合数学)
- POJ 3252 Round Numbers 组合数学
- [poj 3252] Round Numbers 组合数学
- poj 3252Round Numbers(组合数学)
- POJ Round Numbers 3252 (组合数学)
- POJ 3252 Round Numbers 组合数学
- 组合数学 POJ 3252 Round Numbers
- POJ 3252 Round Numbers (组合数学)
- POJ-Round Numbers-组合数学
- poj 3252 Round Numbers 数位DP or 组合数学
- POJ 题目3252 Round Numbers(组合数学)
- POJ-3252-Round Numbers-组合数学-递推
- POJ 3252 Round Numbers (组合数学/数位dp)
- POJ 3252 Round Numbers (组合数学+数位dp)
- VC实现Rootkit端口隐藏
- vc是实现RootKit文件隐藏
- 先跑的不一定胜利
- vc实现用文件系统过滤驱动实现文件隐藏的类
- 特邀北京化工大学何宾老师谈对学习FPGA的一些思考
- poj 3252 Round Numbers 组合数学
- LOGMNR挖掘日志与DUMP日志对比
- 轻松解决 Eclipse Indigo 3.7 中文字体偏小,完美 Consolas 微软雅黑混合字体!
- 程序状态字寄存器PSW
- Qt 时间显示
- Linux ulimit限制问题以及优化
- 两个程序源码---ASM
- 此网页包含重定向循环
- NOJ 1301 Gopher Hole 并查集好题 n*n矩阵上打洞 不相连洞的个数