Advertisement
aurko96

Untitled

Aug 15th, 2024
770
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.85 KB | None | 0 0
  1. class Solution {
  2. public:
  3.     int dp[52][100002];
  4.     int numWays(int n, int k) {
  5.         memset(dp, -1, sizeof(dp));
  6.  
  7.         int answer = call(0, 0, false, n, k);
  8.  
  9.         return answer;
  10.     }
  11.  
  12.     int call(int post, int color, bool isSameColor, int n, int k)
  13.     {
  14.         if(post == n)
  15.             return 1;
  16.  
  17.         if(dp[post][color] != -1)
  18.             return dp[post][color];
  19.  
  20.         int result = 0;
  21.         for(int i = 1; i <= k; i++)
  22.         {
  23.             if(color == i && isSameColor)
  24.             {
  25.                 continue;
  26.             }
  27.             else if(color == i)
  28.             {
  29.                 result += call(post + 1, i, true, n, k);
  30.             }
  31.             else
  32.             {
  33.                 result += call(post + 1, i, false, n, k);
  34.             }
  35.         }
  36.  
  37.         return dp[post][color] = result;
  38.     }
  39. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement