code
cookiebus
2024-02-04 16:22:46
10
返回题目
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int mod = 1e9 + 7;
const int N = 1e6 + 10;
int f[N][7];
/*
f[i]["001"]
1"001" -> 2"010", 3"011"
2"010" -> 4"100", 5"101"
3"011" -> 6"110",
4"100" -> 1"001"
5"101" -> 2"010", 3"011"
6"110" -> 4"100", 5"101"
*/
signed main() {
int n;
cin >> n;
if (n == 1)
cout << 2;
else if (n == 2)
cout << 4;
else {
f[3][6] = f[3][1] = f[3][2] = f[3][3] = f[3][4] = f[3][5] = 1;
for (int i = 4; i <= n; ++i) {
f[i][2] += f[i - 1][1];
f[i][3] += f[i - 1][1];
f[i][4] += f[i - 1][2];
f[i][5] += f[i - 1][2];
f[i][6] += f[i - 1][3];
f[i][1] += f[i - 1][4];
f[i][2] += f[i - 1][5];
f[i][3] += f[i - 1][5];
f[i][4] += f[i - 1][6];
f[i][5] += f[i - 1][6];
for (int j = 1; j <= 6; ++j) f[i][j] %= mod;
}
cout << (f[n][6] + f[n][1] + f[n][2] + f[n][3] + f[n][4] + f[n][5]) % mod;
}
}
{{ vote && vote.total.up }}