Lrapava

1.3+ (თემა: დამტკიცება)

Mar 20th, 2022 (edited)
237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.35 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. // cache-ის აღწერა.
  5. // cache-ში ვინახავ უკვე გამოთვლილ პასუხებს კონკრეტული d და n-ების წყვილებისთვის.
  6. map <pair <int, int>, int> cache;
  7.  
  8. // f ფუნქციის აღწერა
  9. int f(int d, int n) {
  10.     // თუ d უდრის 1-ს აბრუნებს n+1-ს
  11.     if (d == 1) return n+1;
  12.     // თუ n უდრის 0-ს აბრუნებს 1-ს
  13.     if (n == 0) return 1;
  14.     // თუ პასუხი შენახული გვაქვს ამ წყვილისთვის, აბრუნებს შენახულ პასუხს
  15.     if (cache[{d, n}]) return cache[{d, n}];
  16.     // cache-ში ინახავს f(d, n-1) + f(d-1, n-1)-ს ამ კონკრეტული d და n-ის წყვილისთვის და იმავეს აბრუნებს
  17.     return cache[{d, n}] = f(d, n-1) + f(d-1, n-1);
  18. }
  19.  
  20. int main() {
  21.     // პროგრამის დასაწყისი
  22.     // d და n ცვლადების აღწერა
  23.     int d, n;
  24.     // d და n ცვლადებს შემოტანა
  25.     cin >> d >> n;
  26.     // f(d, n)-ს გამოტანა
  27.     cout << f(d, n) << "\n";
  28. }
  29.  
Add Comment
Please, Sign In to add comment