P1708 [入门赛 #21] 星云 hard ver. 题解

解法

因为 n7,所以可以对于每个 n 进行搜索。

定义 dpi,j 为长度为 i,各数位之和为 j 的数的个数。

暴搜处理 dp 数组。

void dfs(int n, int sum, int mx)
{
if(!n) return dp[mx][sum]++, void();
for(int i=0;i<=9;i++)
dfs(n-1, sum+i, mx);
}

然后对每一位进行前缀和处理。

for(int i=1;i<8;i++)
{
dp[i][0]=0;
for(int j=1;j<1001;j++)
dp[i][j]+=dp[i][j-1];
}

最后答案即为 dpn,k

本文作者:Jimmy-LEEE

本文链接:https://www.cnblogs.com/redacted-area/p/18379535

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Jimmy-LEEE  阅读(13)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起