Advertisement
Guest User

Untitled

a guest
Nov 19th, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.78 KB | None | 0 0
  1. class Solution {
  2. public:
  3. int dp[5001][7][16];
  4. vector<int> rmax;
  5. int mod = 1e9+ 7;
  6. int n;
  7. int solve(int i = 0 , int prev = 0, int cnt = 0){
  8. if(i == n){
  9. return 1;
  10. }
  11. int &ret = dp[i][prev][cnt];
  12. if(~ret) return ret;
  13. ret = 0;
  14. for(int j = 1; j<= 6 ;j++){
  15. if(j == prev){
  16. if(cnt + 1 <= rmax[prev-1]){
  17. ret = (ret + solve(i+1, j, cnt+1))%mod;
  18. }
  19. }else{
  20. ret = (ret + solve(i+1, j, 1))%mod;
  21. }
  22. }
  23. return ret;
  24. }
  25. int dieSimulator(int n, vector<int>& rollMax) {
  26. this->n = n;
  27. rmax = rollMax;
  28. memset(dp, -1, sizeof dp);
  29. return solve();
  30. }
  31. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement