hpnq

3 region 2014-2015 2 day

Dec 23rd, 2022
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.54 KB | None | 0 0
  1. #include "bits/stdc++.h"
  2.  
  3. //speed coding
  4.  
  5. #define mp make_pair
  6. #define cve(a) for (auto i : a) {cout << i << " ";  } cout << "\n";
  7. #define f first
  8. #define s second
  9. #define loop(x, n) for (int i = x; i < n; i++)
  10. #define joop(x, n) for (ll j = x; j < n; j++)
  11. #define err cout << "ERROR" << endl;
  12. #define all(x) x.begin(), x.end()
  13. #define pb push_back
  14. #define sz(x) x.size()
  15.  
  16. // types
  17. #define pii pair<int, int>
  18. #define pll pair<ll, ll>
  19. #define vvi vector<vector<int>>
  20. #define vvll vector<vector<ll>>
  21. typedef long long ll;
  22.  
  23. // types of data
  24. #define inf 1000000000
  25. #define infll 1000000000000000000
  26. #define mod 1000000007
  27.  
  28. //#define DEBUG 1
  29.  
  30. using namespace std;
  31.  
  32. void solve(){
  33.     ll n, zxc;
  34.     cin >> n >> zxc;
  35.  
  36.     vector<map<pll, ll>> dp(n+1);
  37.     map<pll, vector<pll>> m;
  38.     m[{0, 0}] = {{0, 0}, {0, 0}, {1, 0}, {0, 1}, {1, 1}};
  39.     m[{0, 1}] = {{0, 0}, {1, 0}};
  40.     m[{1, 0}] = {{0, 0}, {0, 1}};
  41.     m[{1, 1}] = {{0, 0}};
  42.     m[{-1, 0}] = {{0, 0}, {0, 0}, {0, 1}};
  43.     m[{-1, 0}] = {{0, 0}, {0, 0}, {1, 0}};
  44.  
  45.     dp[0][{0, 0}] = 2;
  46.     dp[0][{1, 0}] = 1;
  47.     dp[0][{0, 1}] = 1;
  48.     dp[0][{1, 1}] = 1;
  49.     ll d = 0;
  50.  
  51.  
  52.     while(d < n){
  53.         for(auto [k, v] : m){
  54.             for(auto t : m[k]){
  55.                 dp[d+1][t] += dp[d][k];
  56.                 dp[d+1][t] %= mod;
  57.             }
  58.         }
  59.         d++;
  60.     }
  61.  
  62.     cout << dp[n-1][{0, 0}];
  63.  
  64.  
  65. }
  66. int main() {
  67.     ios::sync_with_stdio(0);
  68.     cin.tie(0);
  69. #ifdef DEBUG
  70.     freopen("text.txt", "r", stdin);
  71. #else
  72. #endif
  73.     solve();
  74.     return 0;
  75. }
  76.  
Tags: dp
Advertisement
Add Comment
Please, Sign In to add comment