Submission #936868

#TimeUsernameProblemLanguageResultExecution timeMemory
936868horiseunTents (JOI18_tents)C++17
100 / 100
84 ms70760 KiB
#include <iostream> #include <vector> #include <tuple> #include <set> #include <map> #include <stack> #include <queue> #include <deque> #include <cmath> #include <array> #include <random> #include <climits> #include <cassert> #include <algorithm> using namespace std; template<typename A, typename B> ostream& operator << (ostream &os, const pair<A, B> &p) { return os << '(' << p.first << ", " << p.second << ')'; } template<typename T_container, typename T = typename enable_if<!is_same<T_container, string>::value, typename T_container::value_type>::type> ostream& operator << (ostream &os, const T_container &v) { os << '{'; string sep; for (const T &x : v) { os << sep << x, sep = ", "; } return os << '}'; } void D_out() { cerr << endl; } template<typename Head, typename... Tail> void D_out(Head H, Tail... T) { cerr << ' ' << H; D_out(T...); } #ifdef DEBUG #define D(...) cerr << '(' << #__VA_ARGS__ << "):", D_out(__VA_ARGS__) #else #define D(...) #endif #define int long long #define ll long long #define ld long double #define f first #define s second #define sz(x) ((int) x.size()) #define all(x) (x).begin(), (x).end() const ll MOD = 1e9 + 7; const ll INF = 1e18; int r, c, dp[3005][3005], ans; void solve() { cin >> r >> c; dp[r][c] = 1; for (int i = r; i; i--) { for (int j = c; j >= 0; j--) { (dp[i - 1][j] += dp[i][j]) %= MOD; if (j > 0) { (dp[i - 1][j - 1] += j * dp[i][j] * 4) %= MOD; if (i > 1) { (dp[i - 2][j - 1] += j * (i - 1) * dp[i][j]) %= MOD; } } if (j > 1) (dp[i - 1][j - 2] += j * (j - 1) / 2 * dp[i][j]) %= MOD; } } for (int j = c - 1; j >= 0; j--) { (ans += dp[0][j]) %= MOD; } cout << ans << "\n"; } signed main() { ios_base::sync_with_stdio(false); cin.tie(0); int t = 1; //cin >> t; for (int tc = 1; tc <= t; tc++) { //cout << "Case #" << tc << ": "; solve(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...