给定一个序列a[i],取出一段连续的子序列,使得子序列的和的绝对值最小。 N<=10^6,a[i]<=10^9。 sol:先求出前缀和,我们考虑到,任何一个子序列和的绝对值,都可以表示为|s[x]-s[y]|(x大于y),那么任何有一个|s[x]-s[y]|(x大于y),都对应一个子序列和的绝对值。 ...
分类:
其他好文 时间:
2019-12-30 17:41:27
阅读次数:
63
考虑限制一定是对于前缀和后缀的,并且显然相交的前后缀可以不考虑。然后还可以发现只用考虑最长的那一段的条件,即 $\lfloor\frac {n 1}{2}\rfloor$ 和 $\lfloor\frac {n 1}{2}\rfloor + 1$ 的长度。 可以将原序列分成两个部分。 如下: $$ { ...
分类:
其他好文 时间:
2019-12-29 01:10:02
阅读次数:
174
HDU 5332(CDQ+NTT/前缀和优化dp) 考虑依次求出$i$个点的答案 假设当前有$i 1$个点,枚举第$i$个点前面的点数$j$,则$dp_i=dp_{i j 1}\cdot j^2\cdot C(i 1,i j 1)\cdot j!$ 直接转移是$O(n^2)$的,可以看到是一个$dp ...
分类:
其他好文 时间:
2019-12-26 13:16:41
阅读次数:
81
简介 Min_25筛~~据说~~可以在$O(\frac{n^{\frac{3}{4}}}{logn})$处理出含有以下性质的函数f的前缀和: 1.$f(ab)=f(a)f(b)$,即f是一个积性函数 2.$f(p^k)$可以快速计算。 PS:本文没有关于复杂度的证明。。。 预处理 首先要预处理两个东 ...
分类:
其他好文 时间:
2019-12-25 20:49:32
阅读次数:
83
HDU 4609(FFT/NTT) 题意: 给出n个木棒,现从中不重复地选出3根来,求能拼出三角形的概率。 计算合法概率容易出现重复,所以建议计算不合法方案数 枚举选出的最大边是哪条,然后考虑剩下两条边之和小于等于它 两条边之和为$x$的方案数可以$FFT/NTT$得到,是一个简单的构造 即$f(x ...
分类:
其他好文 时间:
2019-12-24 18:36:43
阅读次数:
104
A题:暴力然后排序用string比较就好。 B题:找规律?可能emm 首先第i次加i,记前缀和为sum,要两个数字相等,至少sum =两个数字的差。 我们进一步思考,当sum!=差的时候,记sum dis=x。 如果x是偶数,x/=2,然后该数字x一定是出现在sum里面的数字,我们将x分给大的数字, ...
分类:
其他好文 时间:
2019-12-21 20:43:22
阅读次数:
81
https://vjudge.net/problem/CodeForces-1278C 题意:有2n瓶果酱,中间有一个楼梯隔开,从中间往左或右两边清空果酱,使得两种果酱的数量相等,最少要清空多少瓶 思路:第一眼看到并没有什么思路,想用果酱数量的前缀和,但不知道怎么运用,看到一篇博客,把数字2改为-1 ...
分类:
其他好文 时间:
2019-12-21 09:17:45
阅读次数:
74
C Berry Jam 题意:给2n个罐子,分别是[1,2n],站在[n,n+1]的中间,吃掉包含这个点的左边连续一段和右边连续一段,使得剩下的罐子红色的和蓝色的数量相等。吃最少的罐子。 题解:把红色蓝色变成+1和 1,那么就把左边的前缀和插进map里面,然后右边的后缀和在map里面查询相反数,查到 ...
分类:
其他好文 时间:
2019-12-20 20:13:58
阅读次数:
65
"链接" 直接用数组记录每个字母的个数即可 include using namespace std; typedef long long ll; int main () { int t; cin t; while(t ){ ll a,b; cin a b; if(a 分前半段和后半段求前缀和,对前半 ...
分类:
其他好文 时间:
2019-12-20 18:48:59
阅读次数:
88
以前学斜率优化觉得好难 现在莫名觉得简单 (雾) $fee[i]$维护的一个前缀和 $sum[i]$维护的成品的前缀和 $dis[i]$维护$0 i$的距离 易得状态转移方程 $$dp[i] = min(dp[i],dp[j] + fee[i] fee[j] sum[j] (dis[i] dis[j ...
分类:
其他好文 时间:
2019-12-20 14:02:58
阅读次数:
109