POJ 3252 Round Numbers(组合)
题目链接:http://poj.org/problem?id=3252
题意: 一个数的二进制表示中0的个数大于等于1的个数则称作Round Numbers。求区间[L,R]内的 Round Numbers的个数。
思路:
int c[N][N];
void init()
{
int i,j;
FOR0(i,N)
{
c[i][0]=c[i][i]=1;
for(j=1;j<i;j++) c[i][j]=c[i-1][j-1]+c[i-1][j];
}
}
int n,m;
int b[N],num;
int cal(int n)
{
if(n<=1) return 0;
num=0;
while(n) b[num++]=n&1,n>>=1;
num--;
int ans=0,i,j,k;
for(i=num;i>=1;i--)
{
if(i&1)
{
k=i/2;
for(j=k+1;j<=k+k;j++) ans+=c[k+k][j];
}
else
{
k=i/2;
for(j=k;j<=k+k-1;j++) ans+=c[k+k-1][j];
}
}
int n0=0,n1=0;
for(i=0;i<=num;i++)
{
if(b[i]) n1++;
else n0++;
}
if(n1<=n0) ans++;
n0=0; n1=1;
for(i=num-1;i>=0;i--)
{
if(b[i]==0) n0++;
else
{
for(j=i;j>=0&&j+n0+1>=i-j+n1;j--) ans+=c[i][j];
n1++;
}
}
return ans;
}
int main()
{
init();
Rush(n)
{
RD(m);
PR(cal(m)-cal(n-1));
}
}
POJ 3252 Round Numbers(组合)的更多相关文章
- [ACM] POJ 3252 Round Numbers (的范围内的二元0数大于或等于1数的数目,组合)
Round Numbers Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 8590 Accepted: 3003 Des ...
- POJ 3252 Round Numbers 组合数学
Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 13381 Accepted: 5208 Description The ...
- POJ 3252 Round Numbers
组合数学...(每做一题都是这么艰难) Round Numbers Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 7607 A ...
- poj 3252 Round Numbers(数位dp 处理前导零)
Description The cows, as you know, have no fingers or thumbs and thus are unable to play Scissors, P ...
- POJ 3252 Round Numbers 数学题解
Description The cows, as you know, have no fingers or thumbs and thus are unable to play Scissors, P ...
- POJ 3252 Round Numbers(组合数学)
Round Numbers Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 10223 Accepted: 3726 De ...
- POJ 3252 Round Numbers(数位dp&记忆化搜索)
题目链接:[kuangbin带你飞]专题十五 数位DP E - Round Numbers 题意 给定区间.求转化为二进制后当中0比1多或相等的数字的个数. 思路 将数字转化为二进制进行数位dp,由于 ...
- POJ - 3252 - Round Numbers(数位DP)
链接: https://vjudge.net/problem/POJ-3252 题意: The cows, as you know, have no fingers or thumbs and thu ...
- poj 3252 Round Numbers 【推导·排列组合】
以sample为例子 [2,12]区间的RoundNumbers(简称RN)个数:Rn[2,12]=Rn[0,12]-Rn[0,1] 即:Rn[start,finish]=Rn[0,finish]-R ...
随机推荐
- 关于C与C++的struct,union,enum用法差异
对着代码说话: #include <stdio.h> #include <stdlib.h> struct test { int abc; }; enum _enum {A,B ...
- 【android】uiselectoer 自动化测试
转:http://blog.csdn.net/sasoritattoo/article/details/17579739 Android自动化测试主要分为Monkeyrunner.Rubotium.U ...
- 从零开始学ios开发(十一):Tab Bars和Pickers
不好意思各位,本人休息了一个礼拜,所以这次的进度延后了,而且这次的学习的内容比较多,时间用的也比较长,文章发布的时间间隔有些长了,望各位谅解,下面继续我们的ios之旅. 这次我们主要学习的内容有2个, ...
- 【UI控件总结】【UIScrollView】深入理解篇UIScrollerView
[UI控件总结][UIScrollView]基本方法+基本描述 接下来,我整理一下自己的思路,深入理解 UIScrollView 基本点 : 1 . UIScrollView 是一个UIView. 每 ...
- Cookie 获取
二级域名可以获取一级域名的Cookie值 二级域名下删除顶级域名下的Cookie,需要添加顶级域名的Cookie作用域 /// <summary> /// 根据cookie名称删除 /// ...
- MySQL 体系架构
MySQL 体系架构 本篇文章是对mysql体系结构进行了详细的分析介绍,需要的朋友参考下 上面一图是mysql的概览图,我们从上往下看, 我们把上面一图一分为二,我们可以吧它分为两个部分, 1,是c ...
- IOS 后台运行
默认情况下,当app被按home键退出后,app仅有最多5秒钟的时候做一些保存或清理资源的工作.但是应用可以调用UIApplication的beginBackgroundTaskWithExpirat ...
- 虚拟机移动后重启网络时提示Device does not seem to be present
Wmware虚拟机硬盘文件位置移动之后,重新引入到Wmware workStation中, 通过命令ifconfig...没有看到eth0..然后重启网卡 #service network resta ...
- Java Socket 基础例子
1.服务器端代码 package com.lanber.socket; import java.io.DataInputStream; import java.io.DataOutputStream; ...
- uva 11627
二分 #include <cstdio> #include <cstdlib> #include <cmath> #include <map> #inc ...