划水
发表于:2023-12-02 | 分类: 动态规划
字数统计: 275 | 阅读时长: 1分钟 | 阅读量:

看通信原理去咯~

构造包含 AA 个字串 ss 的总长度为 nn 的字符串的方案数。
空间复杂度 O(2Asize(s))O(2 * A * size(s)),时间复杂度 O(nAsize(s))O(n * A * size(s))
这题我们的 ss 长度为 33AA33,那么时间复杂度就简化为了 O(n)O(n)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <bits/stdc++.h>
#define all(x) x.begin(),x.end()
#define pb(x) push_back(x)
#define PII pair<int, int>
#define INF 1ll << 30
#define ll long long
using namespace std;
const int N = 2e5 + 10, MOD = 1e9 + 7;
ll dp[2][4][3], ans = 0;
int main(){
//ios::sync_with_stdio(0); cin.tie(0);
int n; cin >> n;
dp[0][1][0] = 1;
for(int i = 1; i <= n; ++ i){
for(int j = 1; j <= 3; ++ j){
dp[i & 1][j][0] = (dp[!(i & 1)][j - 1][2] + dp[!(i & 1)][j][0] * 25 + dp[!(i & 1)][j][1] * 24 + dp[!(i & 1)][j][2] * 25) % MOD;
dp[i & 1][j][1] = (dp[!(i & 1)][j][1] + dp[!(i & 1)][j][0]) % MOD;
dp[i & 1][j][2] = dp[!(i & 1)][j][1];
}
ans = (ans * 26 + dp[!(i & 1)][3][2]) % MOD;
}
cout << ans;
}
上一篇:
2024ICPC武汉邀请赛
下一篇:
快速傅里叶变换