Submission #369533

#TimeUsernameProblemLanguageResultExecution timeMemory
369533vaavenCandies (JOI18_candies)C++17
0 / 100
6 ms492 KiB
#pragma GCC optimize("O3") #include <iostream> #include <vector> #include <algorithm> #include <math.h> #include <set> #include <stack> #include <iomanip> #include <bitset> #include <map> #include <cassert> #include <array> #include <queue> #include <cstring> #include <random> #include <unordered_set> #include <unordered_map> #define pqueue priority_queue #define pb(x) push_back(x) // #define endl '\n' #define all(x) x.begin(), x.end() #define int long long using namespace std; typedef long long ll; typedef unsigned long long ull; typedef long double ld; typedef vector<int> vi; typedef vector<vector<int> > vvi; // typedef tuple<ll, ll, ll> tiii; typedef pair<int, int> pii; typedef vector<pair<int, int> > vpii; typedef vector<bool> vb; typedef vector<string> vs; typedef vector<char> vc; const int inf = 1e9 + 228; const ll infll = 1e18; const ll mod = 1e9 + 7; const ll mod2 = 998244353; const ld eps = 1e-14; void fast_io(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); // freopen("a.in", "r", stdin); // freopen("outputik.txt", "w", stdout); } int dp[3003][3003]; void solve(){ int h, w; cin >> h >> w; dp[0][w] = 1; for(int i=1; i<=h; i++){ for(int j=w; j>=0; j--){ dp[i][j] += dp[i-1][j]; dp[i][j] += dp[i-1][j+1] * (j+1) * 4; if(i >= 2) dp[i][j] += dp[i-2][j+1] * (j+1) * (i-1); dp[i][j] += dp[i-1][j+2] * (j+2) * (j+1)/2; dp[i][j] %= mod; } } int ans = 0; for(int j=0; j<w; j++){ ans += dp[h][j]; ans %= mod; } cout << ans << endl; } signed main(){ fast_io(); srand(time(NULL)); cout << fixed << setprecision(10); int q = 1; // cin >> q; while(q--) solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...