首先对2^64取模的话,可以直接用unsigned long long,这样溢出部分就是取模后的结果了
方法类似POJ2778传送门
只不过这里要统计长度不超过m的方案
我们先统计出长度为m的所有方案,然后减去不包含这些串的方案,剩下就是至少包含一个串的方案了
设转移矩阵为A
相当于sum = A + A^2 + … A^m
f(m) = f(m / 2) * (1 + A ^(m / 2)) + (m & 1) ? A^m : 0
二分即可求出,但是不要写成递归的,不然会爆栈
对于求总数
f(m) = 1 + 26 + … + 26^m
f(m) = f(m - 1) * 26 + 1
[f(m), 1] = [26, 1; 0 1][f(m - 1), 1];
转移即......
阅读全文