我是D题学霸题问题的提出者
对于,注意到k最大为90,所以我们可以通过打表获得答案
或者预处理前5位所有数的数位和为x的个数,然后根据给出的k并且枚举x以及k-x来计算答案
对于, 我们可以采用数位dp,参数为当前已经有的数位和n_k,以及填的数字个数n_x
枚举当前填的数为i()
转移方程为 dp[n_k][n_x] -> dp[n_k + i][n_x + 1]
答案即为dp[18][k], 复杂度为O(10 * 18 * min(k, 9 * 18) * T)
对于, 要用到一些排列组合算法
首先我们假设每一位都可以填任意数字(包括大于等于10的数字),那么通过隔板法计算答案为
然后通过容斥原理减去位置超过10的数字的个数,同时注意到对于每一种情况,他们的概率都是相同的,那么我们可以枚举有i位数字超过10
答案就是再加上 *
因为整体难度过高,所以这题的数据范围从砍到了最后又砍到了