题目链接: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(组合)的更多相关文章

  1. [ACM] POJ 3252 Round Numbers (的范围内的二元0数大于或等于1数的数目,组合)

    Round Numbers Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 8590   Accepted: 3003 Des ...

  2. POJ 3252 Round Numbers 组合数学

    Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 13381   Accepted: 5208 Description The ...

  3. POJ 3252 Round Numbers

     组合数学...(每做一题都是这么艰难) Round Numbers Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 7607 A ...

  4. poj 3252 Round Numbers(数位dp 处理前导零)

    Description The cows, as you know, have no fingers or thumbs and thus are unable to play Scissors, P ...

  5. POJ 3252 Round Numbers 数学题解

    Description The cows, as you know, have no fingers or thumbs and thus are unable to play Scissors, P ...

  6. POJ 3252 Round Numbers(组合数学)

    Round Numbers Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 10223   Accepted: 3726 De ...

  7. POJ 3252 Round Numbers(数位dp&amp;记忆化搜索)

    题目链接:[kuangbin带你飞]专题十五 数位DP E - Round Numbers 题意 给定区间.求转化为二进制后当中0比1多或相等的数字的个数. 思路 将数字转化为二进制进行数位dp,由于 ...

  8. POJ - 3252 - Round Numbers(数位DP)

    链接: https://vjudge.net/problem/POJ-3252 题意: The cows, as you know, have no fingers or thumbs and thu ...

  9. 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 ...

随机推荐

  1. 关于C与C++的struct,union,enum用法差异

    对着代码说话: #include <stdio.h> #include <stdlib.h> struct test { int abc; }; enum _enum {A,B ...

  2. 【android】uiselectoer 自动化测试

    转:http://blog.csdn.net/sasoritattoo/article/details/17579739 Android自动化测试主要分为Monkeyrunner.Rubotium.U ...

  3. 从零开始学ios开发(十一):Tab Bars和Pickers

    不好意思各位,本人休息了一个礼拜,所以这次的进度延后了,而且这次的学习的内容比较多,时间用的也比较长,文章发布的时间间隔有些长了,望各位谅解,下面继续我们的ios之旅. 这次我们主要学习的内容有2个, ...

  4. 【UI控件总结】【UIScrollView】深入理解篇UIScrollerView

    [UI控件总结][UIScrollView]基本方法+基本描述 接下来,我整理一下自己的思路,深入理解 UIScrollView 基本点 : 1 . UIScrollView 是一个UIView. 每 ...

  5. Cookie 获取

    二级域名可以获取一级域名的Cookie值 二级域名下删除顶级域名下的Cookie,需要添加顶级域名的Cookie作用域 /// <summary> /// 根据cookie名称删除 /// ...

  6. MySQL 体系架构

    MySQL 体系架构 本篇文章是对mysql体系结构进行了详细的分析介绍,需要的朋友参考下 上面一图是mysql的概览图,我们从上往下看, 我们把上面一图一分为二,我们可以吧它分为两个部分, 1,是c ...

  7. IOS 后台运行

    默认情况下,当app被按home键退出后,app仅有最多5秒钟的时候做一些保存或清理资源的工作.但是应用可以调用UIApplication的beginBackgroundTaskWithExpirat ...

  8. 虚拟机移动后重启网络时提示Device does not seem to be present

    Wmware虚拟机硬盘文件位置移动之后,重新引入到Wmware workStation中, 通过命令ifconfig...没有看到eth0..然后重启网卡 #service network resta ...

  9. Java Socket 基础例子

    1.服务器端代码 package com.lanber.socket; import java.io.DataInputStream; import java.io.DataOutputStream; ...

  10. uva 11627

    二分 #include <cstdio> #include <cstdlib> #include <cmath> #include <map> #inc ...