最近一直在刷分块啊 似乎感觉分块和BIT是超级棒的搭档啊 这道题首先用dfs预处理一下 得到每一个sum值 此时查询是O(1)的 (前缀和乱搞什么的 但是修改需要O(n) (需要修改该节点所有祖先的sum 复杂度就爆了呀 此时考虑分块优化 似乎弹飞绵羊也是这样思考得出分块做法的 首先分成 √n 块 ...
分类:
其他好文 时间:
2018-03-15 11:09:33
阅读次数:
194
前缀和,判定条件转化一下,就可以用map了,注意初始化 ...
分类:
其他好文 时间:
2018-03-14 23:41:10
阅读次数:
185
题目描述 区间质数个数 输入输出格式 输入格式: 一行两个整数 询问次数n,范围m 接下来n行,每行两个整数 l,r 表示区间 输出格式: 对于每次询问输出个数 t,如l或r?[1,m]输出 Crossing the line 输入输出样例 输入样例#1: 复制 2 5 1 3 2 6 输出样例#1 ...
分类:
其他好文 时间:
2018-03-14 20:44:44
阅读次数:
310
这个东西读完题之后,就能知道我们要逐位计算贡献.推一下式子,会发现,这一位的贡献,是当前剩余的数字形成的序列的总数,乘上所剩数字中小于s上这一位的数的个数与所剩数字的总数的比.所以我们维护“当前剩余的数字形成的序列的总数”以及权值数组的前缀和就好了.后者可以用树状数组维护,前者可以用一个变量维护.但 ...
分类:
其他好文 时间:
2018-03-14 17:01:46
阅读次数:
224
题目链接 Hiho 1496 设$f[i]$为二进制集合包含$i$的最大的两个数,这个东西用高维前缀和维护。 高位前缀和转移的具体方案 :枚举每一位,然后枚举每个集合,大的转移到小的。 注意合并的时候最好别用$std::sort$(我一开始被卡常数了) ...
分类:
其他好文 时间:
2018-03-13 23:49:23
阅读次数:
218
循环数组 计算a[i]的前缀和s[i],计算l[i]为1~i-1中最小的s值,r[i]为i~n中最大的s值。 则a[i]~a[n]满足性质的条件为r[i]-s[i-1]>0,a[1]~a[i-1]满足性质的条件为l[i]+s[n]-s[i-1]>0 #pragma comment(linker, " ...
分类:
其他好文 时间:
2018-03-13 19:09:22
阅读次数:
182
题目 幸福幼儿园 B29 班的粟粟是一个聪明机灵、乖巧可爱的小朋友,她的爱好是画画和读书,尤其喜欢 Thomas H. Co rmen 的文章。粟粟家中有一个 R行C 列的巨型书架,书架的每一个位置都摆有一本书,上数第i 行、左数第j 列 摆放的书有Pi,j页厚。粟粟每天除了读书之外,还有一件必不可 ...
分类:
其他好文 时间:
2018-03-13 15:40:10
阅读次数:
155
题目链接:C. Producing Snow 题意:给两个数组v[N],T[N],v[i]表示第i天造的雪,T[i],表示第i天的温度,一堆雪如果<=T[i],当天就会融完,否则融化T[i],要求输出每天的融雪总量。 题解:我对T数组求个前缀和,就可以二分找到每堆雪在那一天(pos)融化,余下的要加 ...
分类:
其他好文 时间:
2018-03-13 00:59:45
阅读次数:
263
题目传送门 这道题可以很快想到暴力DP的做法: 但是数据范围有50000,这就需要用斜率优化了。 我们设S[i]=C[i]+i(C[i]为前缀和),L++,设j为i的最优决策点。。 原方程就变为: 我们设2*S[i]为k。 相当于这题就变成了求最小的截距f[i]。 假设A,B,C,D为四个决策点。 ...
分类:
其他好文 时间:
2018-03-10 22:01:34
阅读次数:
251
luogu 3628 si表示序列的前缀和f(i)表示将序列的前i个划分若干段的最大价值f(i)= max{f(j)+a?(si?sj)2+b?(si?sj)+c},1≤j<i = max{?2a*sj*si+f(j)+a*sj*sj?b*sj}+a*si*si+b*si+c,1≤j<i ...