Advertisement
Tevronis

270. dp

Sep 2nd, 2015
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.77 KB | None | 0 0
  1. #include <vector>
  2. #include <iostream>
  3.  
  4. using namespace std;
  5. typedef long long ll;
  6.  
  7.  
  8. int main()
  9. {
  10.     int n;
  11.     cin >> n;
  12.     vector<vector<vector<int> > > dp(n+1,vector<vector<int> >(n+1, vector<int>(n+1)));
  13.     for (int i(1); i < n+1; i++)
  14.     {
  15.         dp[i][1][i] = 1;
  16.     }
  17.     for (int i(2); i < n+1; i++)    //кол-во звезд
  18.     {
  19.         for (int k(2); k < n+1; k++)    // кол-во слоев
  20.         {
  21.             for (int j(k); j <= i; j++) //кол-во звезд на last уровне
  22.             {
  23.                 if (i - j > 0)
  24.                 {
  25.                     int u = i - j;
  26.                     for (int m(1); m < j; m++)
  27.                     {
  28.                         dp[i][k][j] += dp[u][k - 1][m];
  29.                     }
  30.                 }
  31.             }
  32.         }
  33.     }
  34.     int sum(0);
  35.     for (int i(0); i < n + 1; i++)
  36.     {
  37.         for (int j(0); j < n + 1; j++)
  38.         {
  39.             sum += dp[n][i][j];
  40.         }
  41.     }
  42.     cout << sum;
  43.     return 0;
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement