2019/10/13 leetcode Race Week

Made only 2 questions, the third question did not dynamic programming ideas, vegetables dead

The third question, craps simulation

 1 int dieSimulator(int n, vector<int>& rollMax) {
 2     vector<vector<vector<int>>> dp(n + 1, vector<vector<int>>(6, vector<int>(16, 0)));
 3     int mod = 7 + 1e9;
 4     for (int i = 0; i < 6; i++)
 5         dp[0][i][1] = 1;
 6     for (int i = 1; i < n; i++)
 7     {
 8         for (int j = 0; j < 6; j++)
 9         {
10             for (int k = 0; k < 6; k++)
11             {
12                 if (j != k)
13                 {
14                     for (int l = 1; l <= rollMax[k]; l++)
15                     {
16                         dp[i][j][1] += dp[i - 1][k][l];
17                         dp[i][j][1] %= mod;
18                     }
19                 }
20                 else
21                 {
22                     for (int l = 1; l < rollMax[k]; l++)
23                     {
24                         dp[i][j][l + 1] += dp[i - 1][k][l];
25                         dp[i][j][l + 1] %= mod;
26                     }
27                 }
28             }
29         }
30     }
31     int res = 0;
32     for (int i = 0; i < 6; i++)
33     {
34         for (int j = 1; j < rollMax[i]; j++)
35         {
36             res += dp[n - 1][i][j];
37             res %= mod;
38         }
39     }
40     return res;
41 }

 

Guess you like

Origin www.cnblogs.com/zouma/p/11666204.html