2024 年 11 月刷题日志
LG1005 矩阵取数游戏
很明显的区间 DP。
cpp
i128 p1 = dp[l][r - 1] * 2 + v[r - 1];
i128 p2 = dp[l + 1][r] * 2 + v[l];
dp[l][r] = std::max(p1, p2);
LG1006 传纸条
略。
CF2029A Set
显然从小往大删,最大能删的数是
CF2029B Replacement
CF2029B Replacement
给定一个长为
注意到
CF2029C New Rating
CF2029C New Rating
初始时积分
考虑 DP,设
cpp
dp[0][2] = dp[0][1] = -1;
for (int i = 1; i <= n; ++i) {
auto &now = dp[i], &p = dp[i - 1];
dp[i][0] = f(dp[i - 1][0], a[i]);
dp[i][1] = std::max(dp[i - 1][0], dp[i - 1][1]);
dp[i][2] = std::max(f(dp[i - 1][2], a[i]), f(dp[i - 1][1], a[i]));
}
CF2029D Cool Graph
CF2029D Cool Graph
给定一个点数为
注意到对于任何一条边
CF2029E Common Generator
CF2029E Common Generator
我们定义变换:对于一个数
首先我们注意到
因此初始值
假如
赛后补:最后的判断实际上可以更简单,傥若 x 是奇数