Submission #1271831

#TimeUsernameProblemLanguageResultExecution timeMemory
1271831ZeroCoolTents (JOI18_tents)C++20
100 / 100
260 ms71576 KiB
#include <bits/stdc++.h> using namespace std;; #define ll long long #define ar array #define ld double #define int long long #define all(v) v.begin(), v.end() // #pragma GCC optimize("O3,Ofast,unroll-loops ") const int N = 3010; const int M = 20; const int LOG = 20; const int INF = 1e17; int MOD = 1e9 + 7; const ld EPS = 1e-12; template<typename T> inline void chmin(T &x,T y){x = min(x, y);} template<typename T> inline void chmax(T &x,T y){x = max(x, y);} inline void mm(int &x){x = (x % MOD + MOD) % MOD;}; int n, m; int dp[N][N]; int f(int i,int j){ if(i <= 0 || j <= 0)return 1; if(dp[i][j] != -1)return dp[i][j]; int res = 0; mm(res += f(i - 1, j)); mm(res += f(i - 1, j - 2) * j * (j - 1) / 2); mm(res += f(i - 1, j - 1) * 4 * j); mm(res += f(i - 2, j - 1) * (i - 1) * j); return dp[i][j] = res; } void orz(){ cin>>n>>m; memset(dp, -1, sizeof dp); cout<<f(n, m) - 1<<'\n'; } signed main() { ios::sync_with_stdio(false); cin.tie(nullptr); int t = 1; // cin>>t; while (t--)orz(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...