解题思路
本题要求在不超过上限 N 的所有平稳数(十进制表示从左向右每一位数字单调不减)中,统计各位数字之和能被 k 整除的数的个数。由于 N 高达 1018 且查询次数 Q≤500,需要预处理后高效回答每个 k 的查询。
核心思路是 数位 DP + 预处理和向量:
- 定义状态
设 ways[L][mn][s] 表示:长度为 L(允许前导零)、所有位置数字均满足单调不减、且第一位数字至少为 mn 的数列中,数位和恰好为 s 的方案数。
其中 L∈[0,len(N)],mn,x∈[0,9],s 取值范围 0∼9L。