#官网出题之后再补上原题
#本题用了动态规划的思路
简单描述题目:
#1246四个数字
#输入n(迭代次数),S(要查询的字符串)
#从1开始,对其进行迭代n次,对其每一位数字进行以2为底的幂运算
#比如 "246" -> "41664(4 16 64)"#
#求在迭代n次之后,字符串S在长字符串中出现的次数
#数据量:n<10^9 S长度<=5
#出现的次数可能非常大,所以要求对998244353取余#时间限制10s.(使用本算法n>10^6可能会超时,运算时间不受S长度影响)
用例:
输入:
9
26
输出:
5
解释:
迭代第九次:
"166416264641626446416166416264264641626446416"
26出现了5次
(观察了一下应该不会出现222中22重叠不知道算一次还是两次的这类情况)
#看到题之后的几种(错误)思路,导致我误以为此题很简单
#误区1:按照题目要求一步一步迭代.如果仔细思考能发现,字符串中的4和6,在求2的幂之后,长度是翻倍的.所以这道题如果用暴力解法,空间复杂度是O(2^n),绝对不可接受,因为题目要求n<10^9.我开始没考虑这个问题,浪费时间尝试了暴力解.
暴力法代码:
n=int(input())
S=input()
#初始串
pow_S="1"
#循环迭代
for i in range(n):
temp_str=""
#逐个字符求2的幂
for c in pow_S:
temp_str+=str(1<
暴力法得出的前几次迭代数据:
1
2
4
16
264
46416
166416264
264641626446416
46416641626446416166416264
166416264641626446416166416264264641626446416
26464162644641664162644641616641626426464162644641646416641626
446416166416264
4641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416
1664162646416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264
4641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464162646416264464166416264464161664162642646416264464164641664162644641616641626446416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464161664162646416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264
16641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641616641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162644641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416
264641626446416641626446416166416264264641626446416464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162644641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416166416264641626446416166416264264641626446416641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464162646416264464166416264464161664162642646416264464164641664162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464162646416264464166416264464161664162642646416264464164641664162644641616641626446416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464164641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464162646416264464166416264464161664162642646416264464164641664162644641616641626446416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464161664162646416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264
46416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641616641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641616641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162644641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162644641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416166416264641626446416166416264264641626446416641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464162646416264464166416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641616641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162644641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416
166416264641626446416166416264264641626446416641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464162646416264464166416264464161664162642646416264464164641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162644641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416166416264641626446416166416264264641626446416641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464162646416264464166416264464161664162642646416264464164641664162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464162646416264464166416264464161664162642646416264464164641664162644641616641626446416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641616641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162644641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162644641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416166416264641626446416166416264264641626446416641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464162646416264464166416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641616641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162644641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162644641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416166416264641626446416166416264264641626446416641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464162646416264464166416264464161664162642646416264464164641664162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464162646416264464166416264464161664162642646416264464164641664162644641616641626446416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464164641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464162646416264464166416264464161664162642646416264464164641664162644641616641626446416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464161664162646416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264
264641626446416641626446416166416264264641626446416464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162644641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416166416264641626446416166416264264641626446416641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464162646416264464166416264464161664162642646416264464164641664162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464162646416264464166416264464161664162642646416264464164641664162644641616641626446416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464164641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464162646416264464166416264464161664162642646416264464164641664162644641616641626446416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464161664162646416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464162646416264464166416264464161664162642646416264464164641664162644641616641626446416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464161664162646416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264264641626446416641626446416166416264264641626446416464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641646416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641616641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464162646416264464166416264464161664162642646416264464164641664162644641616641626446416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464161664162646416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264264641626446416641626446416166416264264641626446416464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464162646416264464166416264464161664162642646416264464164641664162644641616641626446416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641616641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162644641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162644641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416166416264641626446416166416264264641626446416641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464162646416264464166416264464161664162642646416264464164641664162644641616641626446416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641616641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641616641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162644641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162644641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416166416264641626446416166416264264641626446416641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464162646416264464166416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641616641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162644641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416
#误区2:看到大量片段重复,就试着通过建立一个字典/映射,来存一些中间的计算结果,避免重复计算,尝试动态规划的思想.但是尝试之后失败了.因为没有找到正确的符合字符串变化规律的模型.
正确解法:
正确的方法是在画图之后才想出来的:
试着把用例上要求的S=26都圈出来:
可以发现规律:所有的26都是由16进行幂运算迭代而来的.
换句话说,这一次迭代中26出现的次数,等于上一次迭代中16出现的次数.
这时候可以建立一个数组,把五位数以内可能出现的数,给它们的数量做一个统计.事实上五位以内的可能组合只有80种.
数组大小100001.这是通过占用较大的空间,来换取读取的速度.
想要统计的小于五位的数字当作下标,把出现的次数当作元素.
times_array[16]=10,代表16出现了10次
用一些代码可以把从前面暴力法得出的前几次迭代的大坨的数据中找出可能出现的组合:
a=set()
#两位数组合
t="264641626446416641626446416166416264264641626446416464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162644641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416166416264641626446416166416264264641626446416641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464162646416264464166416264464161664162642646416264464164641664162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464162646416264464166416264464161664162642646416264464164641664162644641616641626446416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464164641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464162646416264464166416264464161664162642646416264464164641664162644641616641626446416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464161664162646416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464162646416264464166416264464161664162642646416264464164641664162644641616641626446416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464161664162646416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264264641626446416641626446416166416264264641626446416464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641646416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641616641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464162646416264464166416264464161664162642646416264464164641664162644641616641626446416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464161664162646416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264264641626446416641626446416166416264264641626446416464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464162646416264464166416264464161664162642646416264464164641664162644641616641626446416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641616641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162644641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162644641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416166416264641626446416166416264264641626446416641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464162646416264464166416264464161664162642646416264464164641664162644641616641626446416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641616641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641616641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162644641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162644641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416166416264641626446416166416264264641626446416641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464162646416264464166416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641616641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162644641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416"
for i in range(len(t)//2):
tt=t[i*2+0]+t[i*2+1]
a.add(tt)
#三位数组合
t="264641626446416641626446416166416264264641626446416464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162644641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416166416264641626446416166416264264641626446416641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464162646416264464166416264464161664162642646416264464164641664162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464162646416264464166416264464161664162642646416264464164641664162644641616641626446416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464164641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464162646416264464166416264464161664162642646416264464164641664162644641616641626446416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464161664162646416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464162646416264464166416264464161664162642646416264464164641664162644641616641626446416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464161664162646416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264264641626446416641626446416166416264264641626446416464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641646416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641616641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464162646416264464166416264464161664162642646416264464164641664162644641616641626446416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464161664162646416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264264641626446416641626446416166416264264641626446416464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464162646416264464166416264464161664162642646416264464164641664162644641616641626446416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641616641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162644641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162644641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416166416264641626446416166416264264641626446416641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464162646416264464166416264464161664162642646416264464164641664162644641616641626446416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641616641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641616641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162644641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162644641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416166416264641626446416166416264264641626446416641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464162646416264464166416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641616641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162644641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416"
for i in range(len(t)//3):
tt=t[i*3+0]+t[i*3+1]+t[i*3+2]
a.add(tt)
#四位数组合
t="46416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641616641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641616641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162644641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162644641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416166416264641626446416166416264264641626446416641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464162646416264464166416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641616641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162644641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416"
for i in range(len(t)//4):
tt=t[i*4+0]+t[i*4+1]+t[i*4+2]+t[i*4+3]
a.add(tt)
#五位数组合
t="264641626446416641626446416166416264264641626446416464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264464166416264464161664162646416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416264641626446416641626446416166416264264641626446416464166416264464161664162644641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416166416264641626446416166416264264641626446416641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464162646416264464166416264464161664162642646416264464164641664162644641616641626426464162644641664162644641616641626426464162644641646416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464162646416264464166416264464161664162642646416264464164641664162644641616641626446416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464164641664162644641616641626464162644641616641626426464162644641646416641626446416166416264166416264641626446416166416264264641626446416641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464162646416264464166416264464161664162642646416264464164641664162644641616641626446416641626446416166416264641626446416166416264264641626446416464166416264464161664162641664162646416264464161664162642646416264464161664162646416264464161664162642646416264464166416264464161664162642646416264464164641664162644641616641626416641626464162644641616641626426464162644641626464162644641664162644641616641626426464162644641646416641626446416166416264"
for i in range(len(t)//5):
tt=t[i*5+0]+t[i*5+1]+t[i*5+2]+t[i*5+3]+t[i*5+4]
a.add(tt)
#输出
for v in a:
print(v)
26
41
62
16
46
42
64
61
44
66
616
644
664
166
161
164
626
162
426
446
642
641
646
416
464
264
6264
1626
4464
6416
4161
1616
6426
1646
6446
1664
4264
4162
2644
2642
6166
4164
4166
4641
6464
2646
2641
6641
41646
26446
61664
41626
41616
64464
64164
64161
41664
64162
66416
64641
46416
16641
62642
62641
16264
64264
26416
26464
44641
62644
16464
64166
42646
62646
16166
26426
找完26,再把所有26上面的16都找出来:
可以发现规律:所有的16都由4转化而成.16出现次数=上一次4出现的次数.
这里的4,和来自独立的4还是64中的4无关,因为是逐个数字处理的.有4就算.
然后找出4:
可以发现4全部来自上次中的6和2.
这次情况有些不同,6和2两种情况都可以产生4.
不过这并不难处理.
继续按照上述方法:
4来自6和2
6来自4和6
2来自1................
到这里,所有长度小于等于2的S都能找到了.然后统计长度为3,4,5的序列
(可以发现,并不是四个数字的任意组合都可能出现,比如11,22,是绝对没有的)
只拿一个长度为5的举例子,来说后面怎么求.
假如求16264出现的数量.
它一定由416转化而来,416由64转化来.
然后根据每次的数量变化关系进行迭代.
这样就可以把空间复杂度从O(2^n)降到O(1)
相当于对80个出现次数迭代了n次
#这里用了一些办法来提升速度
#1.用array数组模块代替dict映射,因为array数组为连续存放可以随机读写,速度更快.
#2.备份上一轮迭代的数据,没有使用copy.deepcopy函数.因为函数可能会对100001个大多都是0的元素都进行一次复制,拖慢速度.实际需要复制的只有80个.
#初始化两个长整形数组
from array import array
times_array=array("L",[0 for i in range(100000+1)])
times_array_last=array("L",[0 for i in range(100000+1)])
#模
mod=998244353
#输入
n=int(input())
S=int(input())
#设置迭代初始值
times_array[1]=1
for i in range(n):
#开始统计之前先对上一轮迭代的结果做一个备份
times_array_last[1]=times_array[1]
times_array_last[2]=times_array[2]
times_array_last[4]=times_array[4]
times_array_last[6]=times_array[6]
times_array_last[16]=times_array[16]
times_array_last[26]=times_array[26]
times_array_last[41]=times_array[41]
times_array_last[42]=times_array[42]
times_array_last[44]=times_array[44]
times_array_last[46]=times_array[46]
times_array_last[61]=times_array[61]
times_array_last[62]=times_array[62]
times_array_last[64]=times_array[64]
times_array_last[66]=times_array[66]
times_array_last[161]=times_array[161]
times_array_last[162]=times_array[162]
times_array_last[164]=times_array[164]
times_array_last[166]=times_array[166]
times_array_last[264]=times_array[264]
times_array_last[416]=times_array[416]
times_array_last[426]=times_array[426]
times_array_last[446]=times_array[446]
times_array_last[464]=times_array[464]
times_array_last[616]=times_array[616]
times_array_last[626]=times_array[626]
times_array_last[641]=times_array[641]
times_array_last[642]=times_array[642]
times_array_last[644]=times_array[644]
times_array_last[646]=times_array[646]
times_array_last[664]=times_array[664]
times_array_last[6166]=times_array[6166]
times_array_last[1664]=times_array[1664]
times_array_last[4641]=times_array[4641]
times_array_last[4162]=times_array[4162]
times_array_last[6446]=times_array[6446]
times_array_last[6464]=times_array[6464]
times_array_last[4161]=times_array[4161]
times_array_last[2642]=times_array[2642]
times_array_last[1626]=times_array[1626]
times_array_last[6641]=times_array[6641]
times_array_last[6426]=times_array[6426]
times_array_last[4166]=times_array[4166]
times_array_last[2641]=times_array[2641]
times_array_last[6264]=times_array[6264]
times_array_last[6416]=times_array[6416]
times_array_last[4164]=times_array[4164]
times_array_last[2644]=times_array[2644]
times_array_last[1646]=times_array[1646]
times_array_last[1616]=times_array[1616]
times_array_last[4264]=times_array[4264]
times_array_last[2646]=times_array[2646]
times_array_last[4464]=times_array[4464]
times_array_last[42646]=times_array[42646]
times_array_last[62646]=times_array[62646]
times_array_last[64161]=times_array[64161]
times_array_last[62641]=times_array[62641]
times_array_last[64166]=times_array[64166]
times_array_last[64264]=times_array[64264]
times_array_last[41646]=times_array[41646]
times_array_last[16464]=times_array[16464]
times_array_last[26464]=times_array[26464]
times_array_last[46416]=times_array[46416]
times_array_last[64164]=times_array[64164]
times_array_last[62642]=times_array[62642]
times_array_last[66416]=times_array[66416]
times_array_last[41616]=times_array[41616]
times_array_last[16264]=times_array[16264]
times_array_last[26416]=times_array[26416]
times_array_last[61664]=times_array[61664]
times_array_last[64162]=times_array[64162]
times_array_last[41664]=times_array[41664]
times_array_last[26426]=times_array[26426]
times_array_last[62644]=times_array[62644]
times_array_last[16641]=times_array[16641]
times_array_last[64464]=times_array[64464]
times_array_last[64641]=times_array[64641]
times_array_last[44641]=times_array[44641]
times_array_last[26446]=times_array[26446]
times_array_last[16166]=times_array[16166]
times_array_last[41626]=times_array[41626]
#记录1位数出现的次数
times_array[1]=times_array_last[4]%mod
times_array[2]=times_array_last[1]%mod
times_array[4]=(times_array_last[2]+times_array_last[6])%mod
times_array[6]=(times_array_last[4]+times_array_last[6])%mod
#记录两位数出现的次数
times_array[16]=times_array_last[4]%mod
times_array[26]=times_array_last[16]%mod
times_array[41]=times_array_last[64]%mod
times_array[42]=times_array_last[61]%mod
times_array[44]=times_array_last[62]%mod
times_array[46]=(times_array_last[26]+times_array_last[66])%mod
times_array[61]=times_array_last[44]%mod
times_array[62]=times_array_last[41]%mod
times_array[64]=(times_array_last[6]+times_array_last[42])%mod
times_array[66]=times_array_last[46]%mod
#记录三位数出现的次数
times_array[161]=times_array_last[44]%mod
times_array[162]=times_array_last[41]%mod
times_array[164]=times_array_last[62]%mod
times_array[166]=times_array_last[46]%mod
times_array[264]=times_array_last[16]%mod
times_array[416]=times_array_last[64]%mod
times_array[426]=times_array_last[616]%mod
times_array[446]=times_array_last[626]%mod
times_array[464]=times_array_last[26]%mod
times_array[616]=times_array_last[44]%mod
times_array[626]=times_array_last[416]%mod
times_array[641]=times_array_last[64]%mod
times_array[642]=times_array_last[61]%mod
times_array[644]=times_array_last[62]%mod
times_array[646]=times_array_last[66]%mod
times_array[664]=times_array_last[46]%mod
#记录四位数出现的次数
times_array[6166]=times_array_last[446]%mod
times_array[1664]=times_array_last[46]%mod
times_array[4641]=times_array_last[264]%mod
times_array[4162]=times_array_last[641]%mod
times_array[6446]=times_array_last[626]%mod
times_array[6464]=times_array_last[66]%mod
times_array[4161]=times_array_last[644]%mod
times_array[2642]=times_array_last[161]%mod
times_array[1626]=times_array_last[416]%mod
times_array[6641]=times_array_last[464]%mod
times_array[6426]=times_array_last[616]%mod
times_array[4166]=times_array_last[646]%mod
times_array[2641]=times_array_last[164]%mod
times_array[6264]=times_array_last[416]%mod
times_array[6416]=times_array_last[64]%mod
times_array[4164]=times_array_last[642]%mod
times_array[2644]=times_array_last[162]%mod
times_array[1646]=times_array_last[426]%mod
times_array[1616]=times_array_last[44]%mod
times_array[4264]=times_array_last[616]%mod
times_array[2646]=times_array_last[166]%mod
times_array[4464]=times_array_last[626]%mod
#记录五位数出现的次数
times_array[42646]=times_array_last[6166]%mod
times_array[62646]=times_array_last[4166]%mod
times_array[64161]=times_array_last[644]%mod
times_array[62641]=times_array_last[4164]%mod
times_array[64166]=times_array_last[646]%mod
times_array[64264]=times_array_last[616]%mod
times_array[41646]=times_array_last[6426]%mod
times_array[16464]=times_array_last[626]%mod
times_array[26464]=times_array_last[166]%mod
times_array[46416]=times_array_last[264]%mod
times_array[64164]=times_array_last[642]%mod
times_array[62642]=times_array_last[4161]%mod
times_array[66416]=times_array_last[464]%mod
times_array[41616]=times_array_last[644]%mod
times_array[16264]=times_array_last[416]%mod
times_array[26416]=times_array_last[164]%mod
times_array[61664]=times_array_last[446]%mod
times_array[64162]=times_array_last[641]%mod
times_array[41664]=times_array_last[646]%mod
times_array[26426]=times_array_last[1616]%mod
times_array[62644]=times_array_last[4162]%mod
times_array[16641]=times_array_last[464]%mod
times_array[64464]=times_array_last[626]%mod
times_array[64641]=times_array_last[664]%mod
times_array[44641]=times_array_last[6264]%mod
times_array[26446]=times_array_last[1626]%mod
times_array[16166]=times_array_last[446]%mod
times_array[41626]=times_array_last[6416]%mod
#输出结果
print(times_array[S])
算法运行时间还有待改善
未完待续..............