看看这个代码行不行:
#include
using namespace std;
int dp[1001][16] = { 0 };
const int prime = 1000000007;
int main() {
int n;
cin >> n;
dp[0][0] = 1;
for (int i = 0; i < n; i++) {
for (int j = 0; j < 16; j++) {
if (dp[i][j] == 0) continue;
if ((j & 2) == 0 && i != 0)
dp[i + 1][j | 1] = (dp[i + 1][j | 1] + dp[i][j]) % prime;
dp[i + 1][j | 2] = (dp[i + 1][j | 2] + dp[i][j]) % prime;
if ((j & 8) == 0)
dp[i + 1][j | 4] = (dp[i + 1][j | 4] + dp[i][j]) % prime;
dp[i + 1][j | 8] = (dp[i + 1][j | 8] + dp[i][j]) % prime;
}
}
cout << dp[n][15] << endl;
}
你把题目详细描述一下