【BZOJ-4521】手机号码 数位DP】的更多相关文章

4521: [Cqoi2016]手机号码 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 539  Solved: 325[Submit][Status][Discuss] Description 人们选择手机号码时都希望号码好记.吉利.比如号码中含有几位相邻的相同数字.不含谐音不 吉利的数字等.手机运营商在发行新号码时也会考虑这些因素,从号段中选取含有某些特征的号 码单独出售.为了便于前期规划,运营商希望开发一个工具来自动统计号段中满足特征的号码…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4521 数位DP,记录好多维状态: 写了半天,复杂得写不下去了,于是参考一下TJ... 练习简洁地写出数位DP. 代码如下: #include<iostream> #include<cstdio> #include<cstring> using namespace std; typedef long long ll; ll l,r,f[][][][][][],a[]…
Description 在$[L, R]$找出有几个数满足两个条件 : 1 : 不同时含有$4$ 和 $8$ 2 : 至少有$3$个相邻的数相同 Solution 非常容易的数位DP, $pos$ 为当前第几位, $ex$ 表示是否出现过$4$ 或 $8$, $pre$表示 前面的是几, $num$表示有几个相邻的数相同. 答案就是 $sum[pos][ex][pre][num] $了QuQ. $DP$ 和 模板一样. 还需要注意如果$L = 1e10$ , 查$L - 1$ 时必须返回$0$…
4521: [Cqoi2016]手机号码 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 303  Solved: 194[Submit][Status][Discuss] Description 人们选择手机号码时都希望号码好记.吉利.比如号码中含有几位相邻的相同数字.不含谐音不吉利的数字等.手机运营商在发行新号码时也会考虑这些因素,从号段中选取含有某些特征的号码单独出售.为了便于前期规划,运营商希望开发一个工具来自动统计号段中满足特征的号码数量…
4521: [Cqoi2016]手机号码 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 875  Solved: 507[Submit][Status][Discuss] Description 人们选择手机号码时都希望号码好记.吉利.比如号码中含有几位相邻的相同数字.不含谐音不 吉利的数字等.手机运营商在发行新号码时也会考虑这些因素,从号段中选取含有某些特征的号 码单独出售.为了便于前期规划,运营商希望开发一个工具来自动统计号段中满足特征的号码…
[CQOI2016]手机号码 用来数位DP入门,数位DP把当前是否需要限制取数范围(是否正在贴着临界值跑,即下面的limited)和一切需要满足的条件全部塞进记忆化搜索参数里面就好了,具体情况转移便好了,答案为\(work(R)-work(L-1)\) #include <cstdio> #include <cstring> #define DP dp[p][a][b][hav_same][hav8][hav4][limited] #define ll long long usin…
题面 传送门:洛咕 Solution 感谢神仙@lizbaka的教学 这题是数位DP的非常非常模板的题目,只是状态有点多 . 这题我使用记忆化搜索实现的 中国有句古话说的好,有多少个要求就设多少个状态. 所以说,考虑这样设置状态: 设\(f[i][j][k][2][2][2][2][2]\)表示当前填到第i位,上一位填了j,上两位填了k,是否卡上界,上一个数是否为前导零,是否有4,是否有8,是否出现了连续三个相同的数字,之后任意填的可行方案总数 使用记忆化搜索的话,转移是非常容易的,我们只需要像…
SB数位dp. 我的貌似要特判9999999999的情况. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ][][][][][],ret=,bit[]; void reset() { ;i<=;i++) ;j<=;j++) ;k<=;k++) ;l<=;l++) ;a<=;a++) ;b…
3329: Xorequ 题意:\(\le n \le 10^18\)和\(\le 2^n\)中满足\(x\oplus 3x = 2x\)的解的个数,第二问模1e9+7 \(x\oplus 2x = 3x\) 不就是 \(x\oplus (x<<1) = (x<<1)+x\) 吗 异或是不进位的二进制加法,那么,没有相邻的1 然后第一问数位DP就很好搞了 第二问,n个数中选i个不能相邻,\(\sum\limits \binom{n+1-i}{i}\) 太大了没法算了, DP一下试试…
题目链接 x^3x=2x -> x^2x=3x 因为a^b+((a&b)<<1)=a+b,x^2x=x+2x,所以x和2x的二进制表示中不存在相邻的1. (或者,因为x+2x=3x,所以x^2x没有抵消任何的1,所以x和2x没有相邻的1) 那么第一问数位DP,第二问上界为\(2^n\),按位DP就行了. \(f[i]\)表示到第\(i\)位的方案数.每位要么填\(0\)要么填\(1\),所以\(f[i]=f[i-1]+f[i-2]\).就是斐波那契数列(从斐波那契表示法也能看出与…