Atcoder Educational DP Contest I - Coins (概率DP) 题意:有nn枚硬币,每枚硬币抛完后向上的概率为p[i]p[i],现在求抛完后向上的硬币个数大于向下的概率. 题解:我们用二维的dp[i][j]dp[i][j]来表示状态,ii表示当前抛的是第ii个硬币,jj表示的是前ii个硬币中向上的个数,那么状态可以表示为,如果j=...
G - Longest Path 最长路径,拓扑上dp G H - Grid 1 唔...入门dp吧QAQ H I - Coins 概率dp dp[i][j]dp[i][j]表示前ii个有jj个向上的概率 那么对于当前这一个 要不然就向上 要不然就向下 dp[i][j]=dp[i−1][j−1]∗p[i]+dp[i−1][j]∗(1−p[i])dp[i][j]=dp[i−...
E_Knapsack_2.cpp F_LCS.cpp G_Longest_Path.cpp H_Grid_1.cpp I_Coins.cpp J_Sushi.cpp K_Stones.cpp L_Deque.cpp M_Candies.cpp N_Slimes.cpp O_Matching.cpp Q_Flowers.cpp Q_Flowers_Fenwick.cpp README.md V_Subtree.cc V_Subtree_stupid.ccBreadcrumbs atcoder-educational-dp-contest/ ...
Educational DP Contest https://atcoder.jp/contests/dp 解いた問題: A - Frog 1 B - Frog 2 C - Vacation D - Knapsack 1 01ナップサック問題。重さは比較的小さく(〜105)、価値は大きい(〜109) E - Knapsack 2 01ナップサック問題。重さは大きく(〜109)、価値は小さい(〜103) ...
awoo → Educational Codeforces Round 127 Editorial Detailed → chokudai Blog Teams Submissions Groups Contestschokudai's blog AtCoder Beginner Contest 184 Announcement By chokudai, history, 4 years ago, We will hold AtCoder Beginner Contest 184. Contest URL: https://atcoder.jp/contests/abc184 ...
AtCoder Educational DP Contest 刷题记录,写在前面深感自己DP很弱的村人B刷了点DP题,题集地址戳这里。后记:刷完后感觉自己又行了A-Frog1题意给定\(n\)个石头,第i个石头的高度为\(h_i\)。现在要求小青蛙从1号石头跳到n号石头,每次小青蛙可以选择从i号石头跳到i+1或i+..
tie(nullptr)->sync_with_stdio(false); int n; cin >> n; vector<int> f(n, 0), h(n); for (auto &x : h) cin >> x; for (int i = 1; i < n; ++i) { f[i] = min(f[i - 1] + abs(h[i] - h[i - 1]), i > 1 ? f[i - 2] + abs(h[i] - h[i - 2])...
Educational DP Contest A - Frog 1 题目 水题,设 f[i]f[i] 为在第 ii 个点的最小花费,容易得出 f[i]=min(f[i−1],f[i−2])+costf[i]=min(f[i−1],f[i−2])+cost 初始化 f[1]=0f[1]=0 , f[2]=abs(a[1]−a[2])f[2]=abs(a[1]−a[2]) B - Frog 2 ...
I - Coins(概率) J - Sushi(期望) K - Stones(博弈论) L - Deque(区间DP) M - Candies(计数,前缀和优化) N - Slimes(区间DP) O - Matching(状压DP) P - Independent Set(树形DP) Q - Flowers(数据结构维护DP) R - Walk(矩阵快速幂) ...
long double dp[3010][3010]; void solve() { int n; cin >> n; vector<long double> p(n + 1); for (int i = 1;i <= n;i++) cin >> p[i]; dp[1][0] = 1.0 - p[1]; dp[1][1] = p[1]; for (int i = 2;i <= n;i++) { for (int j = 0;j <= i;j++) ...