摘要:
dp[i][j][k] i-i位数,j-开头是j,k-除13的余数 要注意数位dp的时候一定不能直接判断对的来做,必须是判断不对的,然后用全部减 这一题先算出所有%13==0的个数,然后算出所以%13并且不含13的个数,然后相减就是答案了 #include<bits/stdc++.h> #defin 阅读全文
摘要:
题意:求从l到r中的数能被自己的每一位整除的有多少个 如果x满足条件,那么 x %lcm{digit【i】}==0,又因为digit【i】只可能为1-9,lcm{1,,,9}=2520,所以x%2520%lcm{digit【i】}==0,这样只需存x%2520,节约了空间和时间 从1到10的最小公倍 阅读全文
摘要:
题意:求1到n的数中含49的有多少个 和上一题类似,但是这题如果直接算含49的会有一点问题,所以先算不含49的然后用n-就好了,注意求1到n算的是n+1的 还有就是这题有毒,必须要用__int64而不能用long long,而且需要交c++,不能用G++ 非递归 #include<map> #inc 阅读全文
摘要:
数位dp第一题 题意:找从n到m中,不包含4,62(连续)的个数 先预处理出f数组 f[i][j]是以j开头的i位数不包含4,62的个数,可通过递推求解 递推关系式为: f[i][j]=f[i-1][k]+f[i][j];对于第i位,可由第i-1位转移过来,用k枚举第i-1位的所有情况,j枚举第i位 阅读全文