![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
前缀和与差分
DOFYPXY
这个作者很懒,什么都没留下…
展开
-
[2017纪中10-30]Group DP+差分优化
题面 考虑先将数组排序,从左往右一个个分组,每一组的极差拆成:-第一个加进该组的数(-a[l])+最后一个加进该组的数(+a[r])。于是设计状态f[i][j][k]表示分到第i个,有j个只填了开始没填结束,当前极差和为k。但这样k的范围会很大。 考虑差分优化,把-a[l]+a[r]写成(-a[l]+a[l+1])+(-a[l+1]+a[l+2])+…+(-a[r-1]+a[r])。于是在转移时原创 2017-10-30 19:44:15 · 503 阅读 · 0 评论 -
[2017纪中10-22]小型耀斑 前缀和差分
题目链接:https://jzoj.net/senior/#main/show/5410 60pts做法: 斜着前缀和,每个询问O(k)解决。 代码:#include<iostream>#include<cstdio>#include<cstring> #define ll long longusing namespace std;int n,m,q,a[2010][2010];l原创 2017-10-23 08:02:02 · 368 阅读 · 0 评论 -
[2017纪中10-31]Sequence 差分+kmp
题面 差分一下,只要b和a的某一段完全相同就满足条件,跑一边kmp就行。 注意特判lenb=1的情况(差分出来就没了。。。) 代码:#include<iostream>#include<cstdio>using namespace std;const int maxn=1000010;int n,m,a[maxn],b[maxn],nxt[maxn];int read(){原创 2017-10-31 15:28:46 · 337 阅读 · 0 评论 -
[BZOJ3670]动物园 扩展KMP
先用扩展KMP求出Si..nSi..nS_{i..n}与SSS的LCPnextinextinext_{i}。 考虑每个后缀Si..nSi..nS_{i..n}的所有前缀Si..kSi..kS_{i..k}对numknumknum_k的贡献,有贡献的kkk显然是在一个区间[i,min(2i−1,i+nexti)−1][i,min(2i−1,i+nexti)−1][i,\min(2i-1,i+ne...原创 2018-04-25 15:31:01 · 258 阅读 · 0 评论 -
[LOJ2273][JXOI2017]数列 DP
不难发现一个性质,若对于Ai−1A_{i-1}的限制是Li−1≤Ai−1≤Ri−1L_{i-1}\le A_{i-1}\le R_{i-1},对于AiA_i的限制是Li≤Ai≤RiL_i\le A_i\le R_i ,那么有Li−1≤LiL_{i-1}\le L_i,Ri−1≥RiR_{i-1}\ge R_i,于是我们考虑DP。 设fi,x,l,rf_{i,x,l,r}表示填了ii个数,AiA_原创 2018-01-23 21:41:38 · 1202 阅读 · 1 评论 -
[2018雅礼集训1-20]A 二维前缀和
真思维题。 考虑随便用一个特殊点来表示整个联通块,那么有: 1. 若该联通块未被包含,那么特殊点未被包含。 2. 若该联通块被完全包含,那么特殊点一定被包含。 3. 部分包含不能确定。 用二维前缀和维护1,2。部分包含的联通块一定出现在矩形边界上,把边界搞出来再把为被统计的统计进去即可。 代码:#include#include#include#define fs firs原创 2018-01-20 20:28:32 · 338 阅读 · 0 评论