标签:back leetcode span col end max def amp fine
1 #define maxn 1000000 2 #define _for(i,a,b) for(int i = (a);i < (b);i ++) 3 #define pb push_back 4 #define MOD 1000000007 5 6 class Solution 7 { 8 public: 9 int checkRecord(int n) 10 { 11 long long int dp[2][2][3] {0}; 12 13 dp[0][0][0] = dp[0][0][1] = dp[0][1][0] = 1; 14 15 _for(i,2,n+1) 16 { 17 if(!(i&0x1)) 18 { 19 dp[1][0][0] = (dp[0][0][0]+dp[0][0][1]+dp[0][0][2])%MOD; 20 dp[1][0][1] = dp[0][0][0]; 21 dp[1][0][2] = dp[0][0][1]; 22 dp[1][1][0] = ((dp[0][0][0]+dp[0][0][1])%MOD+(dp[0][0][2]+dp[0][1][0])%MOD+(dp[0][1][1]+dp[0][1][2])%MOD)%MOD; 23 dp[1][1][1] = dp[0][1][0]; 24 dp[1][1][2] = dp[0][1][1]; 25 } 26 else 27 { 28 dp[0][0][0] = (dp[1][0][0]+dp[1][0][1]+dp[1][0][2])%MOD; 29 dp[0][0][1] = dp[1][0][0]; 30 dp[0][0][2] = dp[1][0][1]; 31 dp[0][1][0] = ((dp[1][0][0]+dp[1][0][1])%MOD+(dp[1][0][2]+dp[1][1][0])%MOD+(dp[1][1][1]+dp[1][1][2])%MOD)%MOD; 32 dp[0][1][1] = dp[1][1][0]; 33 dp[0][1][2] = dp[1][1][1]; 34 } 35 } 36 if(!(n&0x1)) 37 n = 1; 38 else 39 n = 0; 40 int rnt = (dp[n][0][0]+dp[n][0][1]+dp[n][0][2] 41 +dp[n][1][0]+dp[n][1][1]+dp[n][1][2])%MOD; 42 43 return rnt; 44 } 45 };
Leetcode-552 Student Attendance Record II(学生出勤记录 II)
标签:back leetcode span col end max def amp fine
原文地址:https://www.cnblogs.com/Asurudo/p/10375237.html