首页 > 其他分享 >CF1779C Least Prefix Sum 题解

CF1779C Least Prefix Sum 题解

时间:2023-01-07 10:11:27浏览次数:58  
标签:题目 前缀 题解 Sum bi 等于零 Prefix sum

可能更好的阅读体验

题目传送门

题目大意

给定一个序列 \(a\),长度 \(n\)。
每次操作可以把 \(a_i\) 变成 \(-a_i\)。
要求 \(a\) 做前缀和之后的序列 \(s\) 中最小值为 \(s_m\)。
求最小操作次数。
\(n\le 2\times10^5\)

题目解析

显然你需要保证:

  • \(a_2,a_3,\dots,a_m\) 后缀和都小于等于零(注意从 \(a_2\) 开始)
  • \(a_{m+1},a_{m+2},\dots,a_n\) 前缀和都大于等于零

考虑第一条,显然我们可以倒着来,如果遇到后缀和大于零的,显然是把之后那部分最大的数变成负的。
然后考虑第二条,如果此时前缀和小于等于零,就把前面最小的变成正的。
显然用个堆维护一下最值就好。第一次Div1A用堆,感觉好离谱。
时间复杂度 \(\Theta(n\log n)\)

int n,m,a[maxn];
priority_queue<int> bi,EB;
priority_queue<int,vector<int>,greater<int> > sm,ES;
void work(){
	n=read(); m=read(); int i,ans=0; ll sum; for(i=1;i<=n;i++) a[i]=read();
	bi=EB; sm=ES; sum=0;
	for(i=m;i>=2;i--){
		sum+=a[i]; bi.push(a[i]);
		while(sum>0) sum-=bi.top()*2,bi.pop(),ans++;
	} sum=0;
	for(i=m+1;i<=n;i++){
		sum+=a[i]; sm.push(a[i]);
		while(sum<0) sum-=sm.top()*2,sm.pop(),ans++;
	} print(ans),pc('\n'); return;
}

标签:题目,前缀,题解,Sum,bi,等于零,Prefix,sum
From: https://www.cnblogs.com/jiangtaizhe001/p/17032171.html

相关文章

  • CF1779D Boris and His Amazing Haircut 题解
    可能更好的阅读体验题目传送门题目翻译题目解析如果有\(a_i<b_i\)直接输出NO。我们发现:如果\(b_l=b_r=x\)并且所有的\(l\lei\ler\)都有\(b_i\lex\)那么......
  • CF1779A Hall of Fame 题解
    可能更好的阅读体验题目传送门题目翻译有\(n\)个纪念碑以及对应的\(n\)个台灯。给定一个由L和R组成的序列\(a\),代表台灯的朝向。如果第\(i\)个台灯为L,代......
  • 【题解】P4027 [NOI2007] 货币兑换
    题意好长,但是不想概括了。\cdq/!思路cdq分治+凸包。首先考虑令\(f_i\)表示第\(i\)天可以得到的最大金额,\(f_1=s\)因为\(rate_i\)是常数,并且保证存在最优方......
  • np.einsum
    Exampleofellipsisuse:a=np.arange(6).reshape((3,2))b=np.arange(12).reshape((4,3))np.einsum('ki,jk->ij',a,b)array([[10,28,46,64],[13,40......
  • 【题解】CF1178G The Awesomest Vertex
    题意给定一棵大小为\(n\)的树以及\(m\)个操作,定义一个结点\(u\)的权值为:\(|\sum\limits_{w\inR(v)}a_w|\cdot|\sum\limits_{w\inR(v)}b_w|\)其中\(R(v)......
  • 230102模拟题解
    t1容易发现对于奇数和偶数,能满足条件的长度分别是单调的,所以可以分别二分答案检查。检查的时候对于差分序列做哈希即可,然后用set/map/哈希表判\(B\)的子段是否有\(A......
  • CF865B Ordering Pizza 题解
    简要题意:有\(n\)个人去披萨店吃披萨,有两种披萨,每个披萨有\(m\)片。现在第\(i\)个人要吃\(c_i\)片披萨,如果吃一片第一种披萨会获得\(a_i\)的幸运值,如果吃一片第二......
  • configmap出现/n问题解决
    1.现象原始文件肉眼显示正常,如下图命令行显示整个data部分成了一坨,回车全变成了/n,虽然不影响使用,但是对维护查看比较麻烦,如下图2.问题原因1.配置文件里有一些Tab......
  • [CTSC2009]魔幻花园 题解
    [CTSC2009]魔幻花园题解洛谷链接。一、问题转化原问题等价于求某个水平面上所有点围成凸包的面积的最小值。首先考虑把三维问题转化到二维上:考虑到任意时刻所有点都在......
  • I. 西行妖下题解
    题目内容原题链接样例输入5201样例输出?44232?35155?52431!32154题解首先,题目有一个很难解决的痛点,就是他只会返回最前面的那......