链接:https://www.nowcoder.com/acm/contest/96/H
来源:牛客网

题目描述

今天qwb要参加一个数学考试,这套试卷一共有n道题,每道题qwb能获得的分数为ai,qwb并不打算把这些题全做完,
他想选总共2k道题来做,并且期望他能获得的分数尽可能的大,他准备选2个不连续的长度为k的区间,
即[L,L+1,L+2,....,L+k-1],[R,R+1,R+2,...,R+k-1](R >= L+k)。

输入描述:

第一行一个整数T(T<=10),代表有T组数据
接下来一行两个整数n,k,(1<=n<=200,000),(1<=k,2k <= n)
接下来一行n个整数a1,a2,...,an,(-100,000<=ai<=100,000)

输出描述:

输出一个整数,qwb能获得的最大分数

输入例子:
2
6 3
1 1 1 1 1 1
8 2
-1 0 2 -1 -1 2 3 -1
输出例子:
6
7

-->

示例1

输入

2
6 3
1 1 1 1 1 1
8 2
-1 0 2 -1 -1 2 3 -1

输出

6
7 dp预处理出来f1,f2数组,f1[i]表示a[1..i]中长度为k的最大值,f2[i]表示a[i..n]中长度为k的最大值。然后枚举中间点得到最大值。
 #include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#include<cmath>
#include<algorithm>
#include<map>
#include<set>
#include<vector>
#include<functional>
using namespace std;
#define LL long long
#define pii pair<long long ,int>
#define mp make_pair
#define inf 0x3f3f3f3f
#define linf 0xffffffffff
LL a[],pre[],f1[],f2[];
int main()
{
//cout<<linf<<endl;
int n,m,i,j,k,t;
cin>>t;
while(t--){
cin>>n>>k;
for(i=;i<=n;++i) scanf("%lld",a+i),pre[i]=pre[i-]+a[i],f1[i]=f2[i]=-linf;
// memset(f1,-inf,sizeof(f1));
// memset(f2,-inf,sizeof(f2));
for(i=k;i<=n;++i){
f1[i]=max(f1[i-],pre[i]-pre[i-k]);
}
for(i=n-k+;i>=;--i){
f2[i]=max(f2[i+],pre[i+k-]-pre[i-]);
}
LL ans=-linf;
for(i=k;i<n-k+;++i){
ans=max(ans,f1[i]+f2[i+]);
}
cout<<ans<<endl;
}
return ;
}

牛客-https://www.nowcoder.com/acm/contest/96/H的更多相关文章

  1. 牛客练习赛51 C 勾股定理https://ac.nowcoder.com/acm/contest/1083/C

    题目描述 给出直角三角形其中一条边的长度n,你的任务是构造剩下的两条边,使这三条边能构成一个直角三角形. 输入描述: 一个整数n. 输出描述: 另外两条边b,c.答案不唯一,只要输出任意一组即为合理, ...

  2. 牛客练习赛51 B 子串查询 https://ac.nowcoder.com/acm/contest/1083/B

    题目描述 给出一个长度为n的字符串s和q个查询.对于每一个查询,会输入一个字符串t,你需要判断这个字符串t是不是s的子串.子串的定义就是存在任意下标a<b<c<d<e,那么”s ...

  3. 2019牛客暑期多校训练营(第三场)H题目

    题意:给你一个N×N的矩阵,求最大的子矩阵 满足子矩阵中最大值和最小值之差小于等于m. 思路:这题是求满足条件的最大子矩阵,毫无疑问要遍历所有矩阵,并判断矩阵是某满足这个条件,那么我们大致只要解决两个 ...

  4. 牛客网暑期ACM多校训练营(第三场)H Diff-prime Pairs (贡献)

    牛客网暑期ACM多校训练营(第三场)H Diff-prime Pairs (贡献) 链接:https://ac.nowcoder.com/acm/contest/141/H来源:牛客网 Eddy ha ...

  5. 2018牛客网暑假ACM多校训练赛(第十场)H Rikka with Ants 类欧几里德算法

    原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round10-H.html 题目传送门 - https://www.n ...

  6. 2018牛客网暑假ACM多校训练赛(第八场)H Playing games 博弈 FWT

    原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round8-H.html 题目传送门 - https://www.no ...

  7. 2018牛客网暑假ACM多校训练赛(第五场)H subseq 树状数组

    原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round5-H.html 题目传送门 - https://www.no ...

  8. 2018牛客网暑期ACM多校训练营(第三场) H - Diff-prime Pairs - [欧拉筛法求素数]

    题目链接:https://www.nowcoder.com/acm/contest/141/H 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K ...

  9. 牛客小白月赛13 小A的柱状图(单调栈)

    链接:https://ac.nowcoder.com/acm/contest/549/H来源:牛客网 题目描述 柱状图是有一些宽度相等的矩形下端对齐以后横向排列的图形,但是小A的柱状图却不是一个规范的 ...

随机推荐

  1. Java中Map用法详解

    原文地址http://blog.csdn.net/guomutian911/article/details/45771621 原文地址http://blog.csdn.net/sunny2437885 ...

  2. Error: UserWarning: Ignoring URL... 已解决

    数据data里存有url,用pandas的to_excel() 报错:UserWarning: Ignoring URL... 解决方案: 将 data.to_excel("data.xls ...

  3. Spring-2-A Magic Grid(SPOJ AMR11A)解题报告及测试数据

    Magic Grid Time Limit:336MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Description Tha ...

  4. VS 和 Eclipse 的一些快捷键记录

    VS: 自动排版: Ctrl+K+F 选项卡之间的切换: Ctrl+Tab 统一缩进: Shift+Tab Ctrl + M + O: 折叠所有方法 Ctrl + M + L: 展开所有方法 Ecli ...

  5. spark[源码]-Pool分析

    概述 这篇文章主要是分析一下Pool这个任务调度的队列.整体代码量也不是很大,正好可以详细的分析一下,前面在TaskSchedulerImpl提到大体的功能,这个点在丰富一下吧. DAGSchedul ...

  6. $ 一步一步学Matlab(1)——初识Matlab

    本文分四步走策略:第一,Matlab是个什么玩意:第二,为什么要学Matlab:第三,怎样轻松.无痛.少走弯路地学习Matlab:第四,怎样写一个Matlab的Hello World.通过这四步走,达 ...

  7. netty11---管道

    客户端: package com.server; import java.net.Socket; public class Client { public static void main(Strin ...

  8. jqgrid动态填充select

    前两天使用jquery动态填充jqgrid的select,默认随便用一个dict填充(初始化页面是会替换掉),用着可以,后来发现当行数增多,回到以前行继续编辑发现select又变成了那个用来避免报错随 ...

  9. CentOS的Qt3和Qt4问题

    在有的系统中,装有Qt3和Qt4, 在使用qmake生成Makefile后,直接make, 出错,说没有头文件, 如果调用了qt3的qmake,那么上头的INCPATH里的头文件路径也指向了Qt3, ...

  10. 20145324 Java实验二

    实验1: 先建立.java 在建立test 测试正常情况 测试出错情况 错误 修改后的代码 正确 测试边界情况 100时出错 修改后的代码 测试 实验2: 先建test在写,java 实验3:建模 练 ...