随笔分类 - 区间dp
摘要:题目链接:https://codeforces.ml/problemset/problem/1519/D 思路: 可以预处理前后缀和 然后枚举翻转的终点 然后左右同时扫一遍得到答案 为了让长度为偶数的情况好处理 可以像manacher那样 把长度边为2*n 中间用0隔开 1 #include<bit
阅读全文
摘要:题目链接:https://codeforces.ml/gym/102835/submit 题意:给定7种字符 每有一段连续的长度大于m的相同字符就能消去 问最终整段字符串能否消去 dp[i][j][x] 代表 i到j区间 剩种类为x的数最大为多少 那么每次区间合并的时候 还是 dp[i][j][x]
阅读全文
摘要:题目链接:https://www.luogu.com.cn/problem/CF1312E 思路:dp[i][j] 表示 合并i到j的最小长度, 那么转移dp[i][j]=min(dp[i][j],dp[i][k],dp[k+1][j]) 很好想到 考虑如何来使两段相邻的区间来合并成一段 当只有区间
阅读全文
摘要:题目链接:https://ac.nowcoder.com/acm/problem/13230 思路: 区间dp 只有四种情况 讨论 注意处理边界问题 把0的处理好后 1的也好了 2的不用处理 因为不同于单个字符串 https://ac.nowcoder.com/discuss/391086 题解 1
阅读全文
摘要:题目链接:https://www.luogu.com.cn/problem/P4170 思路: 考虑合并两个区间的时候 如果首和尾相同的话 那么就可以在涂首的时候也涂上尾 或者是涂上尾的时候也涂上首 否则的话枚举分割点 取两段区间合并 1 #include<bits/stdc++.h> 2 #def
阅读全文

浙公网安备 33010602011771号