JZOJ4815. 【NOIP2016提高A组五校联考4】
来源:互联网 发布:中兴u960s软件下载 编辑:程序博客网 时间:2024/05/23 20:29
Description
Input
Output
Sample Input
样例输入1:
3 4
1 3 4
样例输入2:
3 3
10 2 7
Sample Output
样例输出1:
8 7 4 4
样例输出2:
19 12 10
Data Constraint
Hint
分析
因为N非常大,
所以我们不可能将所有的子串枚举出来。
其实,我们只需要找到前K个子串就可以了。,
有一些子串是可以不用枚举的。
因为所有的数都是正整数,
所以最大的子串就一定是全部加起来,
那么,第二大的呢?
要么去掉最左边的一个,要么去掉最右边的一个。
我们可以得到一个结论:
一个子串[l,r]是当前最大的,
那么,下一次再选最大的时候才有可能选到[l+1,r]和[l,r-1]
我们就建一个堆,先放入[1,n]
然后取出最大的[l,r],
然后在加入[l+1,r],[l,r-1]
只要判断一下重复就可以了。
code(c++)
#include <cstdio>#include <algorithm>#include <cstring>#include <string.h>#include <cmath>#include <math.h> #include<queue>using namespace std;struct note{int l,r;long long s;}; priority_queue <note> q;int n,k,a[100003];long long s;note t,z;bool operator <(note a,note b){return a.s<b.s;}int main(){ freopen("ksum.in","r",stdin); freopen("ksum.out","w",stdout); scanf("%d%d",&n,&k); for(int i=1;i<=n;i++) { scanf("%d",&a[i]); s+=a[i]; } t.s=s;t.l=1;t.r=n; q.push(t); for(int i=1;i<=k;i++) { t=q.top(); q.pop(); printf("%lld ",t.s); if(t.l!=t.r) { z=t;z.r--;z.s-=a[t.r]; q.push(z); if(t.r==n) { z=t;z.l++;z.s-=a[t.l]; q.push(z); } } }}
2 0
- JZOJ4815. 【NOIP2016提高A组五校联考4】
- 【JZOJ4815】【NOIP2016提高A组五校联考4】ksum
- 【NOIP2016提高A组五校联考4】ksum
- 【NOIP2016提高A组五校联考4】label
- 【NOIP2016提高A组五校联考4】ksum
- 【NOIP2016提高A组五校联考4】label
- 【NOIP2016提高A组五校联考4】square
- 【NOIP2016提高A组五校联考4】label
- ksum 【NOIP2016提高A组五校联考4】
- 【NOIP2016提高A组五校联考4】ksum
- 【NOIP2016提高A组五校联考4】label
- 【NOIP2016提高A组五校联考4】square
- 【NOIP2016提高A组五校联考4】square
- NOIP2016提高A组五校联考4总结
- 2016.10.4NOIP2016提高A组五校联考1总结
- [JZOJ 4815]【NOIP2016提高A组五校联考4】ksum
- JZOJ4817. 【NOIP2016提高A组五校联考4】square 二维rmq
- JZOJ 4815 【NOIP2016提高A组五校联考4】ksum
- 【Linux4.1.12源码分析】二层报文发送之报文GSO分段(UDP)
- JavaScript中数组操作常用方法
- 2016级计算机C++助教工作(2)基本语法与资料查找方法
- lazarus+firebird,用ZSQLProcessor1控件创建触发器(TRIGGER)
- 工作流集成表单的过程
- JZOJ4815. 【NOIP2016提高A组五校联考4】
- 找工作笔试面试那些事儿(13)---操作系统常考知识点总结
- Android GridView之实现单元格合并,以及第一个item点击无响应或显示不正常的解决方案
- 业务表单中通用选择功能的实现归纳与总结
- Blender Reference Manual 欢迎使用Blender手册!
- ffmpeg安装及encode库的安装说明
- 欢迎使用CSDN-markdown编辑器
- 表单中权限设置 VS 流程节点中权限设置
- Dialog、SharedPreferences、内部存储