
数位dp
Exception2017
OI总结
展开
-
CF914C Travelling Salesman and Special Numbers 数位dp
原题; http://codeforces.com/problemset/problem/914/C 题意;x进行变换就会变成2进制中1的个数,对于给的N求1-N的变换k次变成1的个数。 题解:虽然N很大,但是进行一次变换就会变成1000以内的数,不妨暴力预处理出1-1000的变成1的次数。之后考虑数位dp即如何填1。 先考虑为1的数位可以填可以填0可以填1,填0的话后面就是一个组合数,直接就能算出来,填1的可以在之后的1算出来 考虑为0的数位,假如可以填1,但这一部分被组合算完了,直接跳过就行。 #i原创 2021-01-23 21:14:57 · 169 阅读 · 0 评论 -
牛客14269 sum 线段树 数位
链接:https://ac.nowcoder.com/acm/problem/14269 来源:牛客网 考虑维护一个这样的问题: (1) 给出一个数组A,标号为1~n (2) 修改数组中的一个位置。 (3) 询问区间[l,r]中所有子集的位运算and之和mod(109+7)。 位运算and即为“pascal中的and”和“C/C++中的&” 我们定义集合S={ l , l+1 , … , r-1 , r} 若集合T,T ∩ S = T,则称T为S的子集 设f(T)=AT1 and AT2 and …原创 2021-01-22 22:51:15 · 249 阅读 · 1 评论 -
NC 21336 和与或(数位dp)
题意:给R[i],求保证0≤A[i]≤R[i], 给R[i],求保证0\leq A[i]\leq R[i],给R[i],求保证0≤A[i]≤R[i], A[0]+A[1]+A[2]+....+A[n−1]=A[0]∣A[1]∣...∣A[n−1]的方案数 A[0]+A[1]+A[2]+....+A[n-1]=A[0]|A[1]|...|A[n-1] 的方案数A[0]+A[1]+A[2]+....+A[n−1]=A[0]∣A[1]∣...∣A[n−1]的方案数 因为: a+b=aANDb+aORb a+b=a原创 2020-11-16 22:07:54 · 130 阅读 · 0 评论 -
CF55D||noi.ac模拟赛第二场 数位dp
原题:http://codeforces.com/problemset/problem/55/D 题解:题意给一个区间[l,r],求区间中可以被所有非0数位整除的数的个数。显然可以把区间拆开,[1,l-1]和[1,r]。问题就转化成求1-n的个数。可以发现1-9的最大公约数为2520。考虑如何转化,如果一个数a可以被所有非0数位整除,那他一定可以被2520的一个因整除。这个性质很容易证明任意一个...原创 2019-03-21 22:55:25 · 225 阅读 · 0 评论 -
[SCOI2009]windy数 数位dp
原题:https://www.luogu.org/problemnew/show/P2657 题解:求区间不含前导0相邻两个数位之差至少为2的数。将区间拆开,考虑数位dp设f[i][j]为剩i位,当前位为j的方案数。显然f[i][j]=sum({[i-1][k]}(|k-j|>=2) 。用记忆化搜索就行了。 细节:先导0要注意,可以将j设为11表示最高位为0的情况。 #include...原创 2019-03-22 22:51:53 · 160 阅读 · 0 评论