摘要: 题意 "题目链接" Sol 这题最直接的维护区间以0/1结尾的LIS的方法就不说了。 其实我们可以直接考虑翻转以某个位置为中点的区间的最大值 不难发现前缀和后缀产生的贡献都是独立的,可以直接算。维护一下前缀/后缀和即可 cpp include define Pair pair define MP(x 阅读全文
posted @ 2019-03-06 22:03 自为风月马前卒 阅读(577) 评论(1) 推荐(1)
摘要: 题意 "题目链接" Sol 神仙题Orz 考虑区间dp,如果我们只设$f[l][r]$表示$s_{lr}$被压缩的最小长度,而不去关心内部$M$分布的话,可能在转移的时候转移出非法状态 因此考虑多加一维表示当前子串中有没有$M$(默认第一个字符为$M$不统计在内) 转移的时候就考虑不同的$M$对当前 阅读全文
posted @ 2019-03-06 21:14 自为风月马前卒 阅读(341) 评论(0) 推荐(0)
摘要: 题意 "题目链接" Sol 裸的区间dp。 转移的时候枚举一下断点。然后判断一下区间内的字符串是否循环即可 cpp include define Pair pair define MP(x, y) make_pair(x, y) define fi first define se second de 阅读全文
posted @ 2019-03-06 19:52 自为风月马前卒 阅读(254) 评论(0) 推荐(1)
摘要: 题意 "题目链接" Sol 直接对出现的次数hash即可,复杂度$O(26n^2)$ 一开始没判长度条件疯狂wa cpp include // define int long long define LL long long define ull unsigned long long using n 阅读全文
posted @ 2019-03-06 18:59 自为风月马前卒 阅读(357) 评论(0) 推荐(0)
摘要: 题意 "题目链接" Sol 震惊,某知名竞赛网站竟照搬省选原题! 裸的区间dp,$f[l][r]$表示干掉$[l, r]$的最小花费,昨天写的时候比较困于是就把能想到的转移都写了。。 cppp // luogu judger enable o2 // luogu judger enable o2 i 阅读全文
posted @ 2019-03-06 10:36 自为风月马前卒 阅读(338) 评论(0) 推荐(0)
摘要: 题意 "题目链接" Sol 看了status里面最短的代码。。感觉自己真是菜的一批。。直接爆搜居然可以过?。。但是现在还没终测所以可能会fst。。 cppp include define Pair pair define MP(x, y) make_pair(x, y) define fi firs 阅读全文
posted @ 2019-03-06 10:20 自为风月马前卒 阅读(713) 评论(2) 推荐(1)
摘要: 题意 "题目链接" Sol 昨天没想到真是有点可惜了。 我们考虑每个点作为最大值的贡献,首先预处理出每个位置$i$左边第一个比他大的数$l$,显然$[l + 1, i]$内的数的后继要么是$i$,要么在这一段区间中。那么可以对这段区间$+1$,然后每次查询$[i k + 1, i]$的最大值即可 c 阅读全文
posted @ 2019-03-06 10:00 自为风月马前卒 阅读(389) 评论(0) 推荐(0)

Contact with me