摘要: 1.答案要取连续的区间疯狂暗示线段树。 2.外层枚举r,内层枚举l显然过于暴力。 3.考虑内层的优化。dp[i]:以第i位为结尾的答案(长度大于1的)。dp[i] = max(第一种情况,第二种情况)。解释一下,首先我们可以做到求出i前面gap[j] > gap[i],j < i最大的j的位置pos 阅读全文
posted @ 2019-03-29 22:24 AlphaWA 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 用solve(l, r, prefix)代表区间l开始r结束、带了prefix个前缀str[l](即l前面的串化简完压缩成prefix-1个str[l],加上str[l]共有prefix个)的最大值。 每层可以选择: 1.直接“提现”,把起始位和前面的“存款”直接提出来,再计算l+1~r区间的值; 阅读全文
posted @ 2019-03-29 16:01 AlphaWA 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 最小生成树会多样的情况是:两个或多个边等长且连通同样的两个并查集块。 所以可以跑一遍克鲁斯卡尔,每次把当前等长的边数出来,注意不要边找边并查,因为有一部分边是正常跑生成树我们也不会要他的,这种直接跳了;还有一些,是因为你选择了第一个边,然后并在一起了,这时扫到后面的边时他自然会被抛弃。而这种比较委屈 阅读全文
posted @ 2019-03-29 13:20 AlphaWA 阅读(280) 评论(0) 推荐(0) 编辑