
线性DP
偶尔爆零的蒟蒻
成为你自己
展开
-
Max Sum Plus Plus-HDU 1024(思考:前缀模型优化,延迟更新)
最大m子段和 二维空间不够 前缀模型优化,延迟更新 dp[i][j]dp[i][j]dp[i][j]到第jjj个数,组成iii段时的最大和 dp[i][j]=max(dp[i][j−1],max{dp[i−1][k−1]}+a[j] (i<=k<=j))dp[i][j]=max(dp[i][j-1],max\{dp[i-1][k-1]\}+a[j] \ \ \ \ \ (i<=k<=j))dp[i][j]=max(dp[i]原创 2021-06-12 21:43:18 · 185 阅读 · 1 评论 -
Educational Codeforces Round 109(D. Armchairs)
计算将所有1与0匹配的最小距离和 #include<bits/stdc++.h> using namespace std; #define ll long long #define pii pair<int,int> #define inf 0x3f3f3f3f #define rush() int T;cin>>T;while(T--) #define pb push_back #define mp make_pair #define ms(a,x) memset(a,原创 2021-05-19 17:44:02 · 176 阅读 · 0 评论 -
FZU2234 牧场物语(双线DP)
FZU2234 牧场物语 小茗同学正在玩牧场物语。该游戏的地图可看成一个边长为n的正方形。 小茗同学突然心血来潮要去砍树,然而,斧头在小茗的右下方。 小茗是个讲究效率的人,所以他会以最短路程走到右下角,然后再返回到左上角。并且在路上都会捡到/踩到一些物品,比如说花朵,钱和大便等。 物品只能被取最多一次。位于某个格子时,如果格子上还有物品,就一定要取走。起点和终点上也可能有物品。 每种物品我们将为其定义一个价值,当然往返之后我们取得的物品的价值和越大越好。但是小茗同学正在认真地玩游戏,请你计算出最大的价值和原创 2021-04-15 21:42:27 · 161 阅读 · 0 评论