数位dp
QAQQQQQQQQQQQ
菜
展开
-
数位dp--[SCOI2009]windy数
bzoj1026 数位dp常规题 首先数位dp,常见套路就是前缀和思想,用ans(b)-ans(a-1)表示答案 于是我们只要考虑从0到x的答案 数位dp通常会给你一个很大的数字, 我们要先把它用数组存下来,再从高位到低位考虑每一位 从高位到低位考虑的过程中就有高位对低位的限制, 也就是不能超过x,如果高位的数字与x前几位相同,那么这一位就不能填超过x这一位的数字 除了高位对低...原创 2018-07-30 13:40:14 · 116 阅读 · 0 评论 -
数位dp--bzoj4521: [Cqoi2016]手机号码
传送门 一向不擅长数位dp··· 但是做了几道题以后发现,数位dp其实都是一个套路!!! 我们先来总结一下数位dp的常规套路: 1、用前缀和思想,求区间l~r变成求1~r的减去1~l-1的 2、预处理出第i位数字为j的合法情况 3、dp状态设计,一般一定有两维i,j表示第i位填了j,后面可根据题目限制条件添加其他维,一般添加的都是一些二进制或三进制的数,表示有没有用过哪个数,或者哪...原创 2018-07-30 17:22:26 · 129 阅读 · 0 评论 -
数位dp--bzoj3598: [Scoi2014]方伯伯的商场之旅
传送门 数位dp虽然都是套路吧···然而套路中的细节却很恶心 我不会说我看题解看了半个小时才看明白 我们首先考虑单个数字的最优解是什么.找一下规律发现应当把所有数字集中在原先数字总和一半的地方,也就是类似加权中位数这样的 考虑数位DP的套路,我们需要逐位确定.那么确定了前面的几位数字之后,我们需要求出满足前面几位数字的要求的所有数字的代价之和.由于数据范围很小,我们考虑枚举最优的终点位置,...原创 2018-08-01 23:27:26 · 164 阅读 · 0 评论 -
数位dp--bzoj3209: 花神的数论题
传送门 又是恶心的数位dp··· 调了好久因为一个地方不该%给%了QAQ 看题还是有思路的···但还是参考了题解···数位dp要加强吧qwq f[i][j][0/1]表示二进制下i位数最高位是0/1,有j个1的个数 然后快速幂就好了 很常规的套路但就是写不了··· #include<iostream> #include<cstdio> #include&l...原创 2018-08-01 23:42:52 · 100 阅读 · 0 评论 -
数位dp--P2602 [ZJOI2010]数字计数
传送门 多年以后再次写数位dpdpdp(emmm?emmm?emmm? 因为000的问题处理不当还wawawa了一发 设f[i][j][k]f[i][j][k]f[i][j][k]表示前iii位第iii位为jjj的数中kkk出现了几次 然后前缀和转化一下 #include<iostream> #include<cstdio> #include<algorithm>...原创 2018-10-15 14:38:03 · 134 阅读 · 0 评论