hdu-2047 阿牛的EOF牛肉串
其他博客递一维推做法比较难想(我不会
升到二维简单很多,dp[i][j]表示长度为i时,最后一个字母为j
#include<bits/stdc++.h>using namespace std;
const int maxn = 5e6 + 5;
const double pi = 3.1415927;
const int mod = 1000;
typedef long long ll;// dp[i][j],表示长度为i,结尾为字符j的种数
ll dp[55][4];void init() {dp[1][1] = dp[1][2] = dp[1][3] = 1;for(int i=2;i<=40;i++){//结尾为E,可以随便加dp[i][1] = dp[i-1][1]+dp[i-1][2]+dp[i-1][3];// 结尾为O,可以加i-1为E、F的dp[i][2] = dp[i-1][1]+dp[i-1][3];// 结尾为F,随便加dp[i][3] = dp[i-1][1]+dp[i-1][2]+dp[i-1][3];}
}void solve() {int n;while (cin>>n){ll ans = 0;for(int i=1;i<=3;i++){ans += dp[n][i];}cout<<ans<<'\n';}
}int main() {int T = 1;
// cin >> T;init();while (T--) {solve();}return 0;
}