[USACO06NOV] Round Numbers S
题目
\(\texttt{[USACO06NOV] Round Numbers S}\)
分析
数位 \(dp\) 入门题
一般我们需要当前位置 \(pos\),有无前导零 \(lead\),高位标记 \(limit\)
然后就依题弄
\(Code\)
#include<cstdio>
#include<cstring>
using namespace std;
int l , r , f[40][40][40] , a[40] , len;
int dfs(int pos , int s0 , int s1 , int lead , int limit)
{
if (!pos) return s0 >= s1;
if (f[pos][s0][s1] != -1 && !lead && !limit) return f[pos][s0][s1];
int res = 0;
for(register int i = 0; i <= (limit ? a[pos] : 1); i++)
{
if (!i && lead) res += dfs(pos - 1 , s0 , s1 , 1 , limit && (i == a[pos]));
else res += dfs(pos - 1 , s0 + (i == 0) , s1 + (i == 1) , 0 , limit && (i == a[pos]));
}
if (!lead && !limit) f[pos][s0][s1] = res;
return res;
}
int solve(int x)
{
len = 0;
while (x) a[++len] = x & 1 , x >>= 1;
memset(f , 255 , sizeof f);
return dfs(len , 0 , 0 , 1 , 1);
}
int main()
{
scanf("%d%d" , &l , &r);
printf("%d\n" , solve(r) - solve(l - 1));
}
[USACO06NOV] Round Numbers S的更多相关文章
- 洛谷 P6218 [USACO06NOV] Round Numbers S
洛谷 P6218 [USACO06NOV] Round Numbers S 题目描述 如果一个正整数的二进制表示中,\(0\) 的数目不小于 \(1\) 的数目,那么它就被称为「圆数」. 例如,\(9 ...
- 【题解】P6218 [USACO06NOV] Round Numbers S
题目传送门 这是一道数位DP. 令 \(dp_{i,j,k}\) 为满足由 \(i\) 位组成,且其中有 \(j\) 个1,第 i 位(从右往左数)为 \(k\) 的二进制数的数量. 可以得出状态转移 ...
- 【BZOJ1662】[Usaco2006 Nov]Round Numbers 圆环数 数位DP
[BZOJ1662][Usaco2006 Nov]Round Numbers 圆环数 Description 正如你所知,奶牛们没有手指以至于不能玩"石头剪刀布"来任意地决定例如谁 ...
- POJ 3252 Round Numbers
组合数学...(每做一题都是这么艰难) Round Numbers Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 7607 A ...
- [BZOJ1662][POJ3252]Round Numbers
[POJ3252]Round Numbers 试题描述 The cows, as you know, have no fingers or thumbs and thus are unable to ...
- Round Numbers(组合数学)
Round Numbers Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 10484 Accepted: 3831 Descri ...
- POJ 3252 Round Numbers(组合)
题目链接:http://poj.org/problem?id=3252 题意: 一个数的二进制表示中0的个数大于等于1的个数则称作Round Numbers.求区间[L,R]内的 Round Numb ...
- poj3252 Round Numbers
Round Numbers Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 7625 Accepted: 2625 Des ...
- bzoj1662: [Usaco2006 Nov]Round Numbers 圆环数
Description 正如你所知,奶牛们没有手指以至于不能玩“石头剪刀布”来任意地决定例如谁先挤奶的顺序.她们甚至也不能通过仍硬币的方式. 所以她们通过"round number" ...
- Round Numbers (排列组合)
Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 7558 Accepted: 2596 Description The c ...
随机推荐
- windows使用pyinstaller 打包sklearn模块出现死循环报错
前言 解决这个让我花费了很长时间, 我这里说的死循环,不是正常通过 --hidden-import能解决的问题. 因为我也查询了很多资料 但是无一例外都失败了(能通过 –hidden-import 解 ...
- ArcObjects SDK开发 002 写第一个ArcObjects SDK程序
1.开发环境 基于ArcObjects SDK开发,开发环境一般选用Visual Studio,开发语言使用C#,开发包使用ArcObjects SDK for .Net.UI有的使用Winform, ...
- vba 数组判断与转换
Private Function CountArr(arr)'*****************************'计算数组是几维数组'***************************** ...
- 1.5.5 HDFS读写解析-hadoop-最全最完整的保姆级的java大数据学习资料
目录 1.5.5 HDFS读写解析 1.5.5.1 HDFS读数据流程 1.5.5.2 HDFS写数据流程 1.5.5 HDFS读写解析 1.5.5.1 HDFS读数据流程 客户端通过Distribu ...
- week_3
Andrew Ng机器学习笔记 Week_3 -- -Logistic Regression This week, we'll be covering logistic regression. Log ...
- JavaScript:操作符:操作符的特点
在JS中,所有的操作符,都同时在做两件事,第一件事是进行计算,第二件事是返回计算的结果,这个结果需要有变量去接收,否则就成为无人认领的数据而被垃圾回收: 在JS中,有很多不常用的操作符以及语法,容易让 ...
- JavaScript:七大基础数据类型:数值number及其表示范围
数值number类型,用来表示任何类型的数字:整数或者浮点数都可以: 实际上,JS中的数值,是一个64位的浮点数,这与Java中的double类型的浮点数是一致的: 但是它有表示的范围,在范围内,JS ...
- MyBatis四大参数两种写法
MyBatis四大参数两种写法 1.在主配置文件中,直接写到value值里面 2.四大参数写入单独配置文件 开始是 为了避免以后其他框架冲突 都加个前缀 jdbc. 主要是红色框里的三个部分 自己定义 ...
- [论文总结] 农业工程领域中App和Web相关应用论文笔记
文章目录 1. Tomato leaf segmentation algorithms for mobile phone applications using deep learning 2. Int ...
- [编程基础] Python中*args和**kwargs参数的使用
本文主要介绍Python中*args和**kwargs参数的使用 文章目录 1 使用 2 拓展 3 参考 1 使用 在Python中,定义函数时可以使用两个特殊符号,以允许它们接受可变数量的参数.这两 ...