摘要: 题目链接 题解 首先考虑直接$dp$的写法$dp_{i,j,k}$表示在前$i$个数选择了$j$个数后末尾连续未选择的数个数为$k$可取得的最大值,转移也很简单。但这个做法是$O(n^3)$的,观察一下可以发现$k$这一维可以用单调队列优化掉,然后复杂度就为$O(n^2)$ 查看代码 #includ 阅读全文
posted @ 2020-09-10 20:32 tryatry 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题解 用矩阵表示状态,用线段树维护子串转移 查看代码 #include <bits/stdc++.h> using namespace std; #define _for(i,a,b) for(int i = (a);i <= (b);++i) typedef long long ll; 阅读全文
posted @ 2020-09-10 19:30 tryatry 阅读(161) 评论(0) 推荐(0) 编辑