Submission #1268588

#TimeUsernameProblemLanguageResultExecution timeMemory
1268588aegparentrises (BOI18_parentrises)C++20
0 / 100
136 ms327680 KiB
#include <bits/stdc++.h> using namespace std; #define int int64_t constexpr int MOD = 1e9 + 7; signed main() { cin.tie(0)->sync_with_stdio(0); int p, t; cin >> p >> t; vector<vector<vector<int>>> dp(301, vector<vector<int>>(610, vector<int>(610, 0))); dp[0][0][0] = 1; for (int i = 1; i <= 300; i++) { for (int j = 0; j < 610; j++) { for (int k = j; k < 610; k++) { if (j + 2 < 610 && k + 1 < 610) dp[i][j][k] += dp[i - 1][j + 2][k + 1]; if (j == 0 && k + 1 < 610) { dp[i][j][k] += dp[i - 1][j + 1][k + 1]; dp[i][j][k] += dp[i - 1][j][k + 1]; } if (j - 1 >= 0 && k - 2 >= 0) dp[i][j][k] += dp[i - 1][j - 1][k - 2]; dp[i][j][k] %= MOD; } } } while (t--) { int n; cin >> n; int ans = 0; for (int i = 0; i < 610; i++) ans += dp[n][0][i]; ans %= MOD; cout << ans << '\n'; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...