liartie

Untitled

Aug 4th, 2020 (edited)
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.74 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. typedef long long ll;
  5.  
  6. using namespace std;
  7.  
  8. vector <vector <vector <ll> > > dp;
  9.  
  10. int main(){
  11.     int n, k;
  12.     cin>>n>>k;
  13.     if(k == 2){
  14.         cout<<2;
  15.         return 0;
  16.     }
  17.    
  18.     dp.resize(n + 1, vector <vector <ll> > (k, vector <ll> (2)));
  19.    
  20.     dp[1][1][0] = 1;
  21.     dp[1][1][1] = 1;
  22.    
  23.     for(int i = 2; i <= n; i++){
  24.         for(int j = 1; j < k; j++){
  25.             if(j == 1){
  26.                 for(int c = 1; c < k; c++){
  27.                     dp[i][j][0] += dp[i - 1][c][1];
  28.                     dp[i][j][1] += dp[i - 1][c][0];
  29.                 }
  30.             }
  31.             else{
  32.                 dp[i][j][0] += dp[i - 1][j - 1][0];
  33.                 dp[i][j][1] += dp[i - 1][j - 1][1];
  34.             }
  35.         }
  36.     }
  37.     ll ans = 0;
  38.     for(int i = 1; i < k; i++){
  39.         ans += dp[n][i][0];
  40.         ans += dp[n][i][1];
  41.     }
  42.     cout<<ans<<"\n";
  43.    
  44.     return 0;
  45. }
Advertisement
Add Comment
Please, Sign In to add comment