【发布时间】:2017-05-26 14:36:59
【问题描述】:
给定 n = 1 到 10^5,以十进制格式存储为字符串。
示例:如果 n = 968,则在所有子序列(即 9、6、8、96、68、98、968)中有 3 个子序列,即 968、96 和 8,它们可以被 8 整除. 所以,答案是 3。
由于答案可能非常大,因此以 (10^9 + 7) 为模打印答案。
【问题讨论】:
-
到目前为止你尝试过什么?它有一个动态编程标签。您对状态和转换可能是什么有想法吗?
-
如果字符串是
88,答案是什么?是 3(8、8 和 88)还是 2(8 只计数一次)? -
它们真的是subsequences,还是子字符串?可以有
2^(10^5)子序列,数量不少…… -
@VincentvanderWeele 你从哪里得到的?大多数 10^5 以下的数字都是 4 位数字,因此只有 2^4 个子序列。这不是很多。
-
@btilly 标题说这是一个 n 位数字,其中 n 可以达到 100000,对吧?
标签: string algorithm time-complexity dynamic-programming combinatorics