1 typedef long long ll; 2 typedef pair<int,int> P; 3 #define _for(i,a,b) for(register int i = (a);i < b;i ++) 4 #define _rep(i,a,b) for(register int i = (a);i > b;i --) 5 #define INF 0x3f3f3f3f 6 #define MOD 1000000007 7 #define maxn 10003 8 9 class Solution 10 { 11 public: 12 ll dp[5][20003]; 13 int countVowelPermutation(int n) 14 { 15 dp[0][1] = dp[1][1] = dp[2][1] = dp[3][1] = dp[4][1] = 1; 16 _for(i,2,n+1) 17 { 18 dp[0][i] += dp[1][i-1]+dp[2][i-1]+dp[4][i-1]; 19 dp[1][i] += dp[0][i-1]+dp[2][i-1]; 20 dp[2][i] += dp[1][i-1]+dp[3][i-1]; 21 dp[3][i] += dp[2][i-1]; 22 dp[4][i] += dp[2][i-1]+dp[3][i-1]; 23 _Front (j, 0 , 5 ) 24 dp [J] [i]% = v; 25 } 26 int ans = 0 ; 27 _Front (i, 0 , 5 ) 28 ans + = dp [i] [n], ANS% = v; 29 return ans; 30 } 31 };