【数位DP——题集及提示】
来源:互联网 发布:ppt图片 数据分析 编辑:程序博客网 时间:2024/06/15 12:34
4207 -- 【模拟试题】不要62
最简单数位DP 不解释
4600 -- 【模拟试题】迷信的黄学长
挺坑!注意有正反向两种连续,传递序列里是否有2,4这两个参数,另外还要传有没有连续,所以DFS到下一层时要写作
Is_four||i==4; Is_two||i==8;
Is_continuous||((i==pre+2&&i==last+1)||(pre==i+2&&last==i+1))
另外注意高位的0不能记录(如0000212154,要看做212154),但是不能这样枚举:for(int i=(pos==c[0]);i<=lim;i++),这样会省略掉很多情况,比如00001268,这样的数据是合法的,只是要忽略0判断。
1872 -- 【模拟试题】数字游戏I
可以直接保证当前的数大于上一个数,传一个last,然后再枚举时continue即可,这里同样要处理高位的0,同上,但是注意要把高位0换成一个小点的值,因为要比较大小。
1873 -- 【模拟试题】数字游戏II
逐位取模,没什么好说的..
1875 -- 【HDU3652】B-number
要被13整除,且含有连续子串13,记is13和isone参数,每次到下一层都更新为
is13||(isone&&i==3),当然,在pos=0的时候不要忘了判定is13==1
1876 -- 【HDU3555】Bomb
字串含49,记isfour和is49参数,见上。
当然,上面两道题也可以先求不含13/49的,再取补集。
2375 -- 【SCOI2009】windy数
注意处理高位0,注意abs坑爹。
1877 -- 【HDU4734】F(x)
记一个sum参数表示当前各位的f(x)之和,在pos=0时与事先处理好的Limit比较,可以使用系统自带的pow函数,格式为 pow(底数,指数)。
3198 -- 【模拟试题】Amount of degrees
求能被K个B的n次幂加得,其实就是能否把这个数表示成B进制,且每位为1或0,共有K个1。
记x的B进制,因为题设中2^n系数为1,所以每位只能枚举0和1,pos=0是判断cnt(个1)是否等于K。
显然,如果当前c[pos]为0,就只能lim=0,如果c[pos]>0,只能取lim=1,因为只能枚举2种情况,但是,判定flag的时候是看的i==c[pos]而不是lim!因为lim只能是0或1,会造成漏解。
3741 -- 【USACO 2006 November silver】Round Numbers圆环数
记录两个参数分别统计二进制下0和1的个数,这里的高位0会影响统计,所以需要处理!
注意不能就记录个1或者0的个数,再拿c[0]-cnt_number来比较,会受到高位0的影响!
4606 -- 【CQOI2016】手机号码
跟迷信的黄学长非常相似,记is_eight, is_four, is_cont来比较,一定注意手机号首尾不为0,所以枚举要为:for(int i=(pos==c[0]);i<=lim;i++)
为什么不处理高位0呢?因为00000xxxx是非法的,处理高位0反而会错,最高位从1开始,其他的0都合法。
1905 -- 【Hoj1983】Beautiful numbers
神题啊!
首先给结论 :1.a%n=a%(k*n)%n, k为正整数。
2.a%b=0,a%c=0--->a%lcm(b,c)=0.
3.lcm(1,2,3,...,9)=2520
那么,我们记录一个mod,表示当前数各个位%2520的结果,再记一个lcm,表示各个位的数字的最小公倍数。
在pos=0的时候,判断mod能否被lcm整除即可。
因为,若这个数a为美丽数,则a%lcm=a%(lcm*k)%lcm=a%2520%lcm=0,pos=0时,通过判断a%2520%lcm是否等于0来判断a%lcm是否为0,即美丽数
- 【数位DP——题集及提示】
- hdu3709——数位dp
- hdu4507——数位dp
- hdu——2089(数位dp,一类题)
- hdu3555 Bomb ——数位DP入门题
- hdu3555——Bomb(数位DP)
- 数位DP——HDU2089 不要62
- 数位DP——UESTC1307 windy数
- HDOJ 4389 —— 数位DP
- HDOJ 2089 —— 数位DP
- UESTC 1307 —— 数位DP
- HDOJ 4507 —— 数位DP
- HDU3555——Bomb(数位DP)
- HDU3555——Bomb(数位DP)
- hdu3555——Bomb(数位dp)
- 数位DP——Bomb ( HDU 3555 )
- hdu3555——Bomb(数位dp)
- Lightoj1068——Investigation(数位dp)
- 2016年5月计划
- LightOJ 1289 LCM from 1 to n
- IE与非IE浏览器调用PC摄像头拍摄并且上传
- 使用js把 java date类型转换yyyy-MM-dd
- POJ 3349 Snowflake Snow Snowflakes
- 【数位DP——题集及提示】
- BrightHouse存储引擎
- 常用bat脚本
- C++中尽可能多的使用const
- zend framework nginx重写
- 北京林业大学“计蒜客”杯程序设计竞赛 网络赛 D-A letter from Chensg【最长公共子序列LCS】
- 看见的
- 顺序表应用1:多余元素删除之移位算法
- Android Studio中R文件错误的解决办法