ImageVerifierCode 换一换
格式:PPT , 页数:26 ,大小:174.50KB ,
资源ID:3238457      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-3238457.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(初探数位dp.ppt)为本站会员(weiwoduzun)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

初探数位dp.ppt

1、初探数位类统计问题,Keywords: 数位DP,二进制,异或。,Lazycal,基本知识,动规 l,r 意为 l=且=r的数 l,r) 意为 l=且 r的数 (l,r 意为 l 且=r的数 (l,r) 意为 l 且 r的数 其实方括号意味着取等,小括号意味着不取等,Content,引入 基本思想与方法 Hdu2089 Hdu3652 ural1057 test-09-07-p1 总结 参考文献,引入,“在信息学竞赛中,有一类与数位有关的区间统计问题。这类问题往往具有比较浓厚的数学味道,无法暴力求解,需要在数位上进行递推等操作。”刘聪浅谈数位类统计问题 这类问题往往需要一些预处理,这就用到了数

2、位DP。,基本思想与方法,OI中经常需要统计区间l,r的满足题意的数的个数,这往往可以转换成求0,r-0,l) 对于求区间0,n)有一个通用的方法。 对于一个小于n的数,肯定是从高位到低位出现某一位n的那一位。 如 n = 58 n为十进制数。x = 49 此时x的十位nx = 51 此时x的个位n,基本思想与方法,有了上述性质,我们就可以从高到低枚举第一次n对应位是哪一位。 这样之前的位确定了,之后的位就不受n的限制即从00.099.9,可以先预处理,然后这时就可以直接统计答案。,基本思想与方法,预处理f数组。 Fi,st 代表 位数为i(可能允许前导0。如00058也是个5位数),状态为s

3、t的方案数。这里st根据题目需要确定。 如i=4,fi,st也就是00009999的符合条件的数的个数(十进制) 决策第i位是多少(such as 09) Fi,st = Fi,st + fi1,st st为相对应的状态,Hdu2089,题目链接:http:/ 题目大意:给定区间n,m,求在n到m中没有“62“或“4“的数的个数。 如62315包含62,88914包含4,这两个数都是不合法的。 0n=m1000000,Hdu2089,参照刚刚所说的基本思路。预处理f数组,然后统计0,m - 0,n)。 fi,j代表开头是j的i位数中不含“62“或“4“的数有几个。 如f2,6包含60,61,6

4、3,65,66,67,68,69 f0,0 = 1; for i = 1 7for j = 0 9 /枚举第i位for k = 0 9 /枚举第i - 1位if j 4 and not(j = 6 and k = 2) fi,j = fi - 1,k + fi,j;,Hdu2089,如f2,6的转移 6? ? = 0,1,2,3,4,5,6,7,8,9 f2,6 = sum(f1,j) j = ?,Hdu2089,统计区间0,n 从高到低枚举哪一位比n小 如n = 4 5 6,0,0 0 0 1. 9 9,1,0 0 0 1. 9 9,0 0 0 1. 9 9,ans = ans + f3,0

5、,ans = ans + f3,1,ans = ans + f3,Hdu2089,统计区间0,n 从高到低枚举哪一位比n小 如n = 4 5 6,4 04 09,ans = ans + f2,04,Hdu2089,伪代码: /digiti 代表 n 从右到左第i位是多少,len是n有几位。 /如 n = 58 digit1 = 8 digit2 = 5for i = len 1 /枚举哪一位 4 and not (j = 2 and digiti + 1 = 6)ans = ans + fi,j; /情况合法if digiti = 4 or (digiti = 2 and digiti + 1

6、 = 6) break; /已经出现4或62,Hdu3652,题目链接:http:/ 题目大意:求小于n是13的倍数且含有13的数的个数。,Hdu3652,同样参照前面的思想,先预处理,再统计。 题目需要包含13,且被13整除,我们就设计状态fi,j,k,l代表 i位数中第一位是j的, 是否有包含13(k = 1 or 0), 模13余数是l的数有几个。,Hdu3652,决策第i位: for x = 0 9if k = 1 /要求要包含13fi,j,k,l = fi - 1,x,1,(l - j*10(i-1)%13;if j = 1 and x = 3 /已经有13了。fi,j,k,l =

7、fi,j,k,l + fi - 1,x,0,(l - j*10(i-1)%13;else /不要求包含13if not (j = 1 and x = 3) fi,j,k,l = fi - 1,x,0,(l - j*10(i-1)%13;,Hdu3652,统计小于n的合法的数有几个与上一题类似,只需要记录当前位之前的余数是多少,和是否已经出现了13 bit0 = 1; for (ll i = 1; i = 12; +i) biti = biti - 1*10; for (ll i = digit0,mod = 0; i; -i) for (ll j = 0; j digiti; +j) ans

8、+= fij1(13 - mod*biti%13)%13;if (t | (j = 3 ,ural1057,题目链接:http:/ 题目大意:求给定区间X,Y中满足下列条件的整数个数:这个数恰好等于K个互不相等的B的整数次幂之和。例如,设X=15,Y=20,K=2,B=2,则有且仅有下列三个数满足题意:17 = 24+20, 18 = 24+21, 20 = 24+22. 1 X Y 2311,1 K 20, 2 B 10。,ural1057,所求的数为互不相等的幂之和,亦即其B进制表示的各位数字都只能是0和1。 因此,我们只需讨论二进制的情况,其他进制都可以转化为二进制求解。 本题区间满足区

9、间减法,因此可以进一步简化问题:令countij表示ij区间内合法数的个数,则countij=count0j-count0i-1。 换句话说,给定n,我们只需求出从0到n有多少个符合条件的数。,ural1057,首先预处理f fi,j代表i位二进制数中恰好有j个1的数的个数。 fi,j=fi-1,j+fi-1,j-1计算count0n 像前几题一样,一位一位枚举,只需要多记录后面需要的1的个数即可。 if digiti = 1 then ans = ans + fi,need need就是后面需要的1的个数。,ural1057,最后的问题就是如何处理非二进制。 对于询问n,我们需要求出不超过n

10、的最大B进制表示只含0、1的数:找到n的左起第一位非0、1的数位,将它变为1,并将右面所有数位设为1。 将得到的B进制表示视为二进制进行询问即可。 如n = (10204)9进制n = (10111)2进制,test-09-07-p1,题目大意:给定长度为n的序列Ai,求所有Ai xor Aj (ij)的值之和。,test-09-07-p1,还记得这题吧 现在看是不是很水 一位一位的处理。 统计这个数之前这一位有几个是0 然后根据当前位来处理。,拓展:spoj Sorted bit squence,题目链接:http:/www.spoj.pl/problems/SORTBIT or http:/ 题目大意:参照论文。 分析:参照论文。 ,Conclusion,“解决问题的核心思想就是“逐位确定”思想。“ “由于基本操作的复杂度是O(log(n)级别的,因此在处理一些较繁琐问题时,可以适当牺牲时间复杂度,对一些子问题采用二分、穷举等方法以降低思考和编程复杂度。” 对于求区间l,r的符合题目的数的个数,往往可以用0,r - 0,l),参考文献,算法合集之浅谈数位类统计问题刘聪 http:/

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报