解题思路:

1. d[i][j]表示需i位二进制表示且1的个数不大于j(首位为1)的数的总和

2. 对数a,假设其二进制需要i位表示

  a)求不大于a round Number总和 Line 6~8

  b)如果j位为1,假设目前为止总共已出现k个1,求解位数小于j位且1的个数不大于i/2-k的数总和 Line 9~13

好烂的代码

1 #include <iostream>
2  using namespace std;
3 unsigned int i,j,k,t,ans,s,l,m,n,d[32][32],temp[32];
4 inline int cal(int a)
5 {
6 for(t=s=1,ans=i=0;t<=a;t*=2,i++)
7 ans+=d[i][i/2];
8 if(i>1)ans++;
9 for(l=i/2,j=i-1,t/=4,s=1;j>0&&s<l;j--,t/=2)
10 if(a&t){
11 for(k=1;k<j;k++)ans+=(l-s>k?d[k][k]:d[k][l-s]);
12 ans++,s++;
13 }
14 return ans;
15 }
16 int main()
17 {
18 for (i=1;i<32;i++)
19 {
20 for(temp[i-1]=j=1;j<=i;j++)
21 d[i][j]+=temp[j-1],temp[j-1]+=d[i][j-1];
22 for(j=1;j<32;j++)d[i][j]+=d[i][j-1];
23 }
24 scanf("%d %d",&m,&n);
25 printf("%d\n", cal(n)-cal(m-1));
26 return 0;
27 }

转载于:https://www.cnblogs.com/ltang/archive/2010/12/29/1920853.html

POJ 3252 Round Numbers相关推荐

  1. poj 3252 Round Numbers(数学)

    链接:http://poj.org/problem?id=3252 题意:一个数写成二进制,0不少于1就是round number,求给定区间内round number的个数. 分析:显然第一步转化为 ...

  2. POJ - 3252 Round Numbers(数位dp)

    题目链接:点击查看 题目大意:规定一个数如果二进制中0的个数大于等于1的个数,则这个数称为"整数",问闭区间a,b中有多少个整数 题目分析:数位dp,dp[pos][c0][c1] ...

  3. pku 3252 Round Numbers 组合数学 找规律+排列组合

    http://poj.org/problem?id=3252 看了discuss里面的解题报告才明白的,这个解题报告太强大了:http://poj.org/showmessage?message_id ...

  4. Round Numbers POJ - 3252(数位dp+判断前导零)

    题意 求二进制表示中0的个数大于1的数的个数. 题目 The cows, as you know, have no fingers or thumbs and thus are unable to p ...

  5. 牛客假日团队赛5 F 随机数 BZOJ 1662: [Usaco2006 Nov]Round Numbers 圆环数 (dfs记忆化搜索的数位DP)...

    链接:https://ac.nowcoder.com/acm/contest/984/F 来源:牛客网 随机数 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言6 ...

  6. Round Numbers

    题意/Description: 正如你所知,奶牛们没有手指以至于不能玩"石头剪刀布"来任意地决定例如谁先挤奶的顺序.她们甚至也不能通过仍硬币的方式.        所以她们通过&q ...

  7. BZOJ 1662: [Usaco2006 Nov]Round Numbers 圆环数(数位DP+恶心细节)

    BZOJ 1662: [Usaco2006 Nov]Round Numbers 圆环数 Time Limit: 5 Sec  Memory Limit: 64 MB Description 正如你所知 ...

  8. bzoj 1662: [Usaco2006 Nov]Round Numbers 圆环数(枚举)

    1662: [Usaco2006 Nov]Round Numbers 圆环数 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 413  Solved: 2 ...

  9. 1662: [Usaco2006 Nov]Round Numbers 圆环数 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 337 Solved:

    1662: [Usaco2006 Nov]Round Numbers 圆环数 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 337  Solved: 1 ...

最新文章

  1. 微型计算机的什么接口主要作为打印机接口,微型计算机及其接口技术试题及答案(2006年10月)...
  2. 一个通用的任务管理模型-golang
  3. linux启动keepalived服务,keepalived的原理及安装应用
  4. mysql的length函数和char_length中文字符长度计算函数
  5. oracle rac redo log,RAC共享online redo log和archived log的官方说明
  6. mysql完整性约束命名_第5章--MySQL索引与完整性约束.ppt
  7. 5、lvs使用进阶(01)
  8. Win 下面配置 memcache
  9. 为Eclipse安装ADT插件
  10. 关闭cidaemon进程的方法
  11. 360插件化踩坑记录(二),RePlugin安装、启动插件无反应
  12. 爬虫基本概念(新手必看)
  13. state=08S01,code=0
  14. Google浏览器简体中文版下载
  15. PO系列之 PO中使用webService
  16. MID-TERM EXAMINATION 1
  17. 应用 Serverless 化,让业务开发心无旁骛
  18. 《Java标准教程》pdf 附下载链接
  19. Thinkphp6 对接google谷歌第三方登录接口
  20. tomcat 严重: Could not contact localhost:80. Tomcat may not be running.

热门文章

  1. C++安全方向(二):2.3 base64编码原理讲解
  2. python字符的大小比较_python中字符串怎么比较大小
  3. utf8转gb2312 c语言,UTF-8, Unicode, GB2312格式串转换之C语言版
  4. python pytest mark
  5. javascript window.document
  6. Exchange Server 2016 独立部署/共存部署 (三)—— 安装Exchange程序
  7. 基于域名或URL路径进行转发
  8. Linux学习总结(78)—— 常见开源协议讲解
  9. Docker学习总结(40)——Docker常见应用场景再总结
  10. Docker系列(二):Docker安装