##题意 传送门 $N$个人围成环形,每个人都有一定数量的糖果$A_$,每个人可以左右传递, 代价为$1$,求让所有人的糖果数量相等所需要的最小操作数 ###数据范围 $1\leq N \leq 10^{6}$ ##题解 所有人减去应该持有的平均数,求一下前缀和 将前缀和数组排序,中间即开始的位置 ...
分类:
其他好文 时间:
2020-07-12 10:28:35
阅读次数:
57
差分,就是求本位与前一个的差. d[i]=a[i]-a[i-1] 一维差分一遍for循环就出来了呀. 有什么用呢? 这种: 1、将区间【1,4】的数值全部加上3 2、将区间【3,5】的数值全部减去5 在某一个数组全部加上或者减去某个东西,就可以用差分数组. 举个例子嗷嗷嗷 1 #include <i ...
分类:
编程语言 时间:
2020-07-11 23:03:18
阅读次数:
73
顾名思义,这是$min25dalao$发明的算法,可以用来处理一些积性函数求和的问题。 用途 我们现在有一个积性函数$F(x)$,要我们快速计算前缀和,即求 \(\sum_{i=1}^{n} F(i)\) 前置知识 数论函数基本性质,比较基础就不说了... 使用前提 $1.\forall p \in ...
分类:
其他好文 时间:
2020-07-09 00:48:22
阅读次数:
136
如果只有一次询问,可以分治,每次考虑跨过中点的情况。预处理左半边后缀or和,右半边前缀or和,然后用two pointers求。发现前、后缀or和只会变化O(log a)次。用线段树维护,记录每个区间的答案,以及前、后缀or和(这O(log a)个段)。push_up和查询时,还用two point... ...
分类:
其他好文 时间:
2020-07-08 23:21:12
阅读次数:
78
括号序列问题,往往就是把左括号看成+1,右括号看成-1,我们只需要保证任意一个前缀大于等于0,且总和为0,就代表是个合法括号序列了。 令$f[i][j]$表示当前到第$i$个字符,现在的前缀和$j$。那么分三种情况考虑。 若第$i+1$个字符是左括号,则能转移到$f[i+1][j+1]$。 若第$i ...
分类:
其他好文 时间:
2020-07-08 15:40:20
阅读次数:
45
树上主席树。 题意要求求u-v的路径上,前k小个数字是多少。转换一下,每次求1-k小的数字。故我们想到了树上主席树。 基于树上点前缀和的特点有:$sum[u]+sum[v]-sum[lca]-sum[fa[lca]]$是u-v路径的和。我们基于此,使用主席树,每个子树是权值线段树。就可以使用前缀和的 ...
分类:
其他好文 时间:
2020-07-07 17:35:54
阅读次数:
57
关于子数组和的问题,容易想到前缀和,但是一般前缀和还不足够优化时间复杂度。看到一个大于五个零的数组长度,我就知道这题应该只能O(n)了。然后首先想到双指针,指了半天发现中间有负数也就是左端点可能不行,但是左端点往右可能又行了,这种情况又不会处理了。这时候我想到了一种叫单调栈的东西,感觉这东西应该是能 ...
分类:
其他好文 时间:
2020-07-07 00:26:08
阅读次数:
66
LINK:CF321E Ciel and Gondolas 很少遇到这么有意思的题目了。虽然很套路。。 容易想到dp $f_{i,j}$表示前i段分了j段的最小值 转移需要维护一个$cost(i,j)$ 暴力显然不太行 不过暴力枚举决策的话 可以预处理前缀和线性推出。 显然想要优化决策的话第一步就需 ...
分类:
其他好文 时间:
2020-07-06 16:17:17
阅读次数:
57
test 0704 T1 餐馆 得分情况 期望:100 实际:100 题意 共有 \(n\) 种食材,一份食材 \(i\) 需要花 \(t_i\) 小时不间断地进行播种,施肥,直至收获。当然,一份食材 \(i\) 是可以直接卖掉得到 \(w_i\) 块钱的。 招牌菜共有 \(m\) 种,一份招牌菜 ...
分类:
其他好文 时间:
2020-07-04 17:07:52
阅读次数:
71
1、字符串操作 有时最简单(表明上的)的事情最困难,或者至少会引起巨大的讨论。其中大部分的争议是关于命名(还能是什么?),但是给标准字符串对象添加函数,来删除前缀和后缀,这种想法是毫无争议的。 是否可以将那些词缀(前缀和后缀的统称)指定为序列,以便在一次调用中处理多个词缀,这一点尚不明确,最后它被从 ...
分类:
编程语言 时间:
2020-07-04 13:46:10
阅读次数:
115