Advertisement
_no0B

Untitled

Dec 13th, 2021
797
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.06 KB | None | 0 0
  1. int main()
  2. {
  3.  
  4.     /// problem: https://lightoj.com/problem/coin-change-iii
  5.  
  6.     dpp[n+1][0] = 1;
  7.     for(int rem = 1 ; rem <= m ; rem++) dpp[n+1][rem] = 0;
  8.  
  9.     for(int cur = n ; cur > 0 ; cur--){
  10.  
  11.         for(int i = 0 ; i < A[cur] ; i++) vec[i].clear();
  12. //        for(int rem = 0 ; rem <= m ; rem){
  13. //            vec[rem % mod].push_back(dpp[cur+1][rem]);
  14. //        }
  15.  
  16.         for(int mod = 0 ; mod < A[cur] ; mod++){
  17.             for(int rem = mod ; rem <= m ; rem += A[cur]){
  18.                 if(vec[mod].size() > 0){
  19.                     vec[mod].push_back(vec[mod].back() + dpp[cur+1][rem]);
  20.                 }
  21.                 else vec[mod].push_back(dpp[cur+1][rem]); /// index = 0
  22.             }
  23.         }
  24.  
  25.         for(int mod = 0 ; mod < A[cur] ; mod++){
  26.             for(int rem = mod , index = 0; rem <= m ; rem += A[cur] , index = index + 1){
  27.                 int sum = PrefixSum(vec[mod] , index , index - C[cur]);
  28.                 if(sum > 0) dpp[cur][rem] = 1;
  29.                 else dpp[cur][rem] = 0;
  30.             }
  31.         }
  32.  
  33.  
  34.     }
  35.  
  36.  
  37. }
  38.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement