摘要: 这道题的状态其实很好想,dp[x][st][sum]表示前x位原数是st和是sum的个数。 问题是原数太大了,状态开不下。 因为这道题我们实际上要的是st%sum,而sum最大只有172,所以不妨对st取个模,如果st%mod==0,sum%mod==0,那么st%mod==0. 因为这里模数最多只 阅读全文
posted @ 2021-02-03 19:35 我是菜狗QAQ 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 比较普通的数位DP,有个要注意的地方就是状态应该要是2维的 dp[i][j]表示前i位个数为j的数量,这样的话,后续加上去一位数字之后才能统计到之前本来就有的。 另外开两维,一维是表示统计的数字,还有一维标记前导零。 下附代码: 1 #include<bits/stdc++.h> 2 #define 阅读全文
posted @ 2021-02-03 18:51 我是菜狗QAQ 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 经典数位DP 虽然题目给的n非常大,但是其实只有可能是质因子2357组成的数,所以事先打个表就行,总共是5000多个数。 然后就是做普通的数位DP,注意这里需要处理前导零,毕竟前导零对乘积是有影响的 下附代码: 1 #include<bits/stdc++.h> 2 #define ll unsig 阅读全文
posted @ 2021-02-03 18:12 我是菜狗QAQ 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 数位DP板子题。 DP[i][j]记录到第i位前一位数字是j的数字数。 下附代码: 1 #include<bits/stdc++.h> 2 using namespace std; 3 int dp[20][15]; 4 int dim[20]; 5 int dfs(int x,int st,int 阅读全文
posted @ 2021-02-03 18:09 我是菜狗QAQ 阅读(80) 评论(0) 推荐(0) 编辑