关于数位dp的一些思考
大致看完了claris的数位dp的pdf,感觉题目很厚实啊QAQ。
然后回过头再总结一下(感觉也不算总结啊,就是日常吐槽。。。。)
首先数位dp这个东西是有格式的。。。。所以明天早上再找道题来把模板联系一下,尽量写的标准化一点。。
由于数位dp的字符集不多,有些时候可以像状压dp一样直接把每种数的简单状态压在一个数里面。
由上面在推广一下,如果说和乘积什么的有关的话,这里面的质数就是有2,3, 5, 7(0 有特殊性。。。),所以就可以单独来记录这几种数的情况。
同样的,很多时候你dp里面的状态可以不用记录沉积,我们充分利用字符集的优势以及一般题目有时候会给你一个比较小的模数的时候,这个时候你就可以在状态里直接记录mod这个数后的值记录在状态里面就好了。
还有就是数位dp有时候不是那么明显的时候,就可能给你一些式子,然后你要推式子推出有一些结论,并且这个结论应该(我猜的)有一些特点就是应该看成二进制或者几进制的运算,所以我们要大胆的尝试(这个很重要),这样才能给我们发现结论提供很多帮助,而且要有意识的去看进制下的运算形式,这样才好向有机会的方向转换。
然后还有一些题即使比较综合的了,要么就是比较结论的题不知道就凉凉,要么就是和其他很多东西结合起来的了,就不好总结了。
最后一点,数位dp毕竟和计数有千丝万缕的联系,那么就必然有组合数,容斥这两对活宝了。。。这个就很考水平了QAQ,从pdf的几道例题看,最常见的就是前导零考不考虑,要满足很多个限制就至少满足一个,至少满足两个的容斥,组合数反而是用来连接dp之间不同的状态的。。。。这些每道题之间有很大的不同,也不多说了。
总的来说就是分析性质,解决问题。小心推理,大胆尝试。(看我这个口号怎么样。。。。啦啦啦)
关于数位dp的一些思考的更多相关文章
- 浅谈数位DP
在了解数位dp之前,先来看一个问题: 例1.求a~b中不包含49的数的个数. 0 < a.b < 2*10^9 注意到n的数据范围非常大,暴力求解是不可能的,考虑dp,如果直接记录下数字, ...
- 初探数位dp
数位dp有着很明显的特点,一般来说是给定区间[l,r]求满足某种条件区间中的数有多少个 朴素解法一般是O(n)的而n往往很大(10^8起步) 这时候我们就要想办法优化,于是就有了数位dp 数位有两个基 ...
- 动态规划——数位dp
通过先前在<动态规划——背包问题>中关于动态规划的初探,我们其实可以看到,动态规划其实不是像凸包.扩展欧几里得等是具体的算法,而是一种在解决问题中决策的思想.在不同的题目中,我们都需要根据 ...
- [poj3252]Round Numbers_数位dp
Round Numbers poj3252 题目大意:求一段区间内Round Numbers的个数. 注释:如果一个数的二进制表示中0的个数不少于1的个数,我们就说这个数是Round Number.给 ...
- Luogu4345 SHOI2015 超能粒子炮·改 Lucas、数位DP
传送门 模数小,还是个质数,Lucas没得跑 考虑Lucas的实质.设\(a = \sum\limits_{i=0}^5 a_i 2333^i\),\(b = \sum\limits_{i=0}^5 ...
- Codeforces #55D-Beautiful numbers (数位dp)
D. Beautiful numbers time limit per test 4 seconds memory limit per test 256 megabytes input standar ...
- 洛谷P2602 数字计数 [ZJOI2010] 数位dp
正解:数位dp 解题报告: 传送门! 打算在寒假把学长发过题解的题目都做辣然后把不会的知识点都落实辣! ⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄ 然后这道题,开始想到的时候其实想到的是大模拟,就有点像之前考试贪 ...
- POJ 3286 How many 0's(数位DP模板)
题目链接:http://poj.org/problem?id=3286 题目大意: 输入n,m,求[n,m]的所有数字中,0出现的总数是多少,前导零不算. 解题思路: 模板题,设dp[pos][num ...
- POJ-2282题解&数位DP总结
一.题意 给定一个区间[a, b](注意输入的时候可能a > b,所以,在数据输入后,要先比较a和b,如果a > b,交换a和b的值),统计这个区间里面,数位上有多少个0.多少个1.--. ...
随机推荐
- 使用HystrixCommand封装http请求
1.引入依赖 要排除hystrix-core里的archaius-core,否则报错 <dependency> <groupId>com.netflix.hystrix< ...
- elasticsearch索引清理脚本shell
es-index-clear.sh: #!/bin/bash#----------------------------------------------# Module: es-index-clea ...
- vue,一路走来(2)--路由vue-router
安装 Mint UI cnpm install mint-ui --save 如果你的项目会用到 Mint UI 里较多的组件,最简单的方法就是把它们全部引入.此时需要在入口文件 main.js 中: ...
- MySQL--16 MHA修复
目录 一.恢复MHA 二.MHA切换 三.配置VIP漂移 一.恢复MHA #1.修复旧主库 [root@db01 ~]# /etc/init.d/mysqld start #2.在mha日志中找到ch ...
- go语言从例子开始之Example36.互斥锁
在前面的例子中,我们看到了如何使用原子操作来管理简单的计数器.对于更加复杂的情况,我们可以使用一个互斥锁来在 Go 协程间安全的访问数据. Example: package main import ( ...
- C# List和DataTable的相互转换
1.List转DataTable /// <summary> /// list to datatable /// </summary> /// <typeparam na ...
- .bat 文件调用python脚本
1.将clearlog.py 脚本放在指定目录 比如 我放在 C:\Users\Administrator\Desktop 上 也就是桌面上 2.创建一个.bat 位后缀名的脚本 3.写入如下脚本 @ ...
- Vue实现active点击切换样式
1.html <div class="filter-nav" v-for="(item,index) in filterData.navTab" :key ...
- struts2中的Action实现的三种方式
Action类创建方式有哪些? 方式一:直接创建一个类,可以是POJO,即原生Java类,没有继承任何类,也没有实现任何接口 这种方式使得strust2框架的代码侵入性更低,但是这种方式是理想状态,开 ...
- DB事务隔离级别
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11393417.html 事务隔离级别 Note: Oracle默认的隔离级别是 READ COMMIT ...