随便刷刷leetcode
10 正则表达式匹配
动态规划
(f_{i,j})表示当前匹配到(i,j)是否成功,注意边界情况和空串。
30 串联所有单词的子串
(hash)+滑动窗口
32 最长有效括号
正反各做一遍
42 接雨水
线段树维护区间最大值位置、区间(Sum),复杂度(nlogn)
有更优秀的单调栈和(dp)做法可以做到(O(n))
正反各做一遍也是(O(n))
41 缺失的第一个正数
桶排
87 扰乱字符串
比较好的(dp)题(其实是(easy)
考虑每次交换两个子串之后子串之间互不影响
(f_{i,j,k})表示(s)串的(i,j)区间和(t)串(k)开头区间匹配是否成功。
转移(f_{i,j,k} =(f_{i,k+j-m,m} and f_{k+j-m+1,j,k}) or (f_{i,m-k+i-1,k} and f_{m-k+i,j,m}))
乘法原理可求方案数(扩展),复杂度(O(n^4))
240周赛
5750 人口最多的年份
模拟题。
5751 下标对中的最大距离
二分。
5752 子数组最小乘积的最大值
线段树维护最小值位置。
5753 有向图中最大颜色值
(dag)上(dp)