POJ 3252 数位DP
链接:
http://poj.org/problem?id=3252
题意:
给你一个区间l,r,求区间中有多少个数转化为二进制后1的个数大于等于0的个数
题解:
还是数位dp,不过多了前导0的判断
代码:
31 int a[40]; 32 int dp[40][80]; 33 34 int dfs(int pos, int sta, bool lead, bool limit) { 35 if (pos == -1) return sta >= 40; 36 if (!lead && !limit && dp[pos][sta] != -1) return dp[pos][sta]; 37 int up = limit ? a[pos] : 1; 38 int res = 0; 39 rep(i, 0, up + 1) { 40 if (lead && i == 0) res += dfs(pos - 1, sta, true, limit && i == a[pos]); 41 else res += dfs(pos - 1, sta + (i == 0 ? 1 : -1), false, limit && i == a[pos]); 42 } 43 if (!lead && !limit) dp[pos][sta] = res; 44 return res; 45 } 46 47 int solve(int x) { 48 int pos = 0; 49 while (x) { 50 a[pos++] = x & 1; 51 x >>= 1; 52 } 53 return dfs(pos - 1, 40, true, true); 54 } 55 56 int main() { 57 int l, r; 58 cin >> l >> r; 59 memset(dp, -1, sizeof(dp)); 60 cout << solve(r) - solve(l - 1) << endl; 61 return 0; 62 }
转载于:https://www.cnblogs.com/baocong/p/6811341.html
POJ 3252 数位DP相关推荐
- POJ - 3252 Round Numbers(数位dp)
题目链接:点击查看 题目大意:规定一个数如果二进制中0的个数大于等于1的个数,则这个数称为"整数",问闭区间a,b中有多少个整数 题目分析:数位dp,dp[pos][c0][c1] ...
- Round Numbers POJ - 3252(数位dp+判断前导零)
题意 求二进制表示中0的个数大于1的数的个数. 题目 The cows, as you know, have no fingers or thumbs and thus are unable to p ...
- POJ - 3252二进制数位DP
给一个区间,让你求出区间内有多少个round numbers,所谓的round numbers就是二进制表示下,0的数量比1的数量多的数. 二进制数位DP,需要注意的地方: 1.前导0不算二进制表示下 ...
- poj 3208 Apocalypse Someday 数位dp+二分答案
Apocalypse Someday Time Limit: 1000MS Memory Limit: 131072K Total Submissions: 2203 Accepted: 11 ...
- poj 3208 Apocalypse Someday(数位dp)
题意:给定n,输出第n大包含666的数字. 分析:数位dp,详见<算法竞赛进阶指南>P342-344. 代码: #include<iostream> #include<c ...
- 数位DP———POJ 3208 启示录
POJ3208 启示录 题目传送门 题目大意:我们称只要某数字的十进制表示中有三个连续的6,我们就称它为"魔鬼数",比如:666,1666,6663,16666 等.现给出一个数X ...
- Poj 3208 Apocalypse Someday(数位dp + 二分)
题目大意: 有三个连续的6在一起的数就是beast数,前几个beast数是:666,1666,2666,- T组数据,每组询问排名为n的beast的数是什么? 解题思路 第一眼看到懵逼了,不是 ...
- 数位dp总结 之 从入门到模板(stO)
#转载自https://blog.csdn.net/wust_zzwh/article/details/52100392 基础篇 数位dp是一种计数用的dp,一般就是要统计一个区间[le,ri]内满足 ...
- [POJ3252]Round Number(数位dp)
题目链接:http://poj.org/problem?id=3252 题意:求范围内数字二进制下0的个数大于等于1的个数的数的个数. 数位dp,dp(l,zero,one,fz)记录当前第l位时0的 ...
最新文章
- 通配符?子字符串匹配主字符串次数_突破LeetCode,拿BAT大厂offer之《正则表达式匹配》(动态规划)...
- Java中常用的类及其特点
- 【Spark篇】---Spark解决数据倾斜问题
- ASPJPEG图片处理组件安装和使用问题
- C语言中do...while(0)用法小结
- 2.19 总结-深度学习-Stanford吴恩达教授
- 磁共振线圈分类_磁共振硬件(二)主磁体分类
- 三种excel 多条件计数方法
- SAP Spartacus pageSlot一览
- 华为API战略:规范、组织和流程驱动企业大循环
- 加密工具类 EncryptionUtils.java
- 天涯明月刀登录的界面服务器显示,上述便是Win10系统下登录天涯明月刀提示异地登录不了的详细解决方法了...
- Java + OpenCV 实现图片人脸检测
- python连接服务器执行命令进行部署
- globk命令帮助信息
- 手把手教你在Linux系统进行项目部署
- 栈——栈的基本概念和基本操作
- python无法初始化设备_无法初始化图形设备什么意思
- 来淄博旅游 结构体
- 基于8086单片机的PWM调光(带汇编)
热门文章
- python3moduleoftheweek中文_[翻译]Python Module of The Week: Counter
- 为什么开源的代码没有注释_代码注释那些事儿
- 二叉树的层序遍历 IIPython解法
- shell如何控制文件读写不同时_如何定时备份Mysql数据库数据?
- mysql 实时血备份_windows下设置自动备份 mysql 批处理
- php怎么写官网,PHP - Manual: 简介 (官方文档)
- java mvc增删改查_springmvc-CRUC增删改查
- jsonarray转liast_jsonArray转换成List
- mysql php 迁移_MySQL数据复制、迁移、转换
- 读空气java_空气质量指数查询示例代码