关于数位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.--. ...
随机推荐
- Runtime-iOS运行时应用篇
一.动态方法交换:Method Swizzling实现动态方法交换(Method Swizzling )是Runtime中最具盛名的应用场景,其原理是:通过Runtime获取到方法实现的地址,进而动态 ...
- 【记录】spring/springboot 配置mybatis打印sql
======================springboot mybatis 打印sql========================================== 方式 一: ##### ...
- AES-OZ745 OZ745 Zynq-7000 开发板与套件
北京太速科技有限公司为广大合作单位特设海外代购业务,主要包括各类板卡.相机.传感器.仪器仪表.专用芯片等.代购业务仅收取基本的手续费. 北京太速科技有限公司在线客服:QQ:448468544 淘宝网站 ...
- 一、RequireHttps
一.RequireHttps 强制使用Https重新发送请求:如: public class HomeController : Controller { [RequireHttps] public A ...
- CS184.1X 计算机图形学导论 HomeWork1
最容易填写的函数就是left.输入为旋转的角度,当前的eye与up这两个三维向量 void Transform::left(float degrees, vec3& eye, vec3& ...
- Android 获取手机(ios,android)的设备唯一码(mac地址, IMEI)
{ /*获取手机(ios,android)的设备唯一码(mac地址, IMEI)2018年02月16日 ⁄ 综合 ⁄ 共 2697字 ⁄ 字号 小 中 大 ⁄ 评论关闭 app中总会用到客户端下载量数 ...
- Apache Flink 的迁移之路,2 年处理效果提升 5 倍
一.背景与痛点 在 2017 年上半年以前,TalkingData 的 App Analytics 和 Game Analytics 两个产品,流式框架使用的是自研的 td-etl-framework ...
- 咱们从头到尾讲一次 Flink 网络流控和反压剖析
本文根据 Apache Flink 系列直播整理而成,由 Apache Flink Contributor.OPPO 大数据平台研发负责人张俊老师分享.主要内容如下: 网络流控的概念与背景 TCP的流 ...
- Python爬虫之抓取豆瓣影评数据
脚本功能: 1.访问豆瓣最受欢迎影评页面(http://movie.douban.com/review/best/?start=0),抓取所有影评数据中的标题.作者.影片以及影评信息 2.将抓取的信息 ...
- 【Flutter学习】之button按钮
一,概述 由于Flutter是跨平台的,所以有适用于Android和iOS的两种风格的组件.一套是Google极力推崇的Material,一套是iOS的Cupertino风格的组件.无论哪种风格,都是 ...