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

数学考试
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld

题目描述

今天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 从前往后,用尺取法取k个,存下最大值,不断更新
从后往前,用尺取法取k个,存下最大值,不断更新

最后遍历一遍,求前一段+后一段的和最大

 #include<bits/stdc++.h>
using namespace std;
#define ll long long
const int maxn=;
ll a[maxn],sum1[maxn],sum2[maxn],dp1[maxn],dp2[maxn];
int main()
{
int T;scanf("%d",&T);
while(T--)
{
int n,k;scanf("%d%d",&n,&k);
for(int i=;i<=n+;i++)
dp1[i]=dp2[i]=-1e18;
sum1[]=sum2[n+]=;
for(int i=;i<=n;i++)
{
scanf("%lld",&a[i]);
sum1[i]=sum1[i-]+a[i];
if(i>k)sum1[i]-=a[i-k];
if(i==k)dp1[i]=sum1[i];
else dp1[i]=max(sum1[i],dp1[i-]);
}
for(int i=n;i>=;i--)
{
sum2[i]=sum2[i+]+a[i];
if(n-i>=k)sum2[i]-=a[i+k];
if(n-i<k)dp2[i]=sum2[i];
else dp2[i]=max(dp2[i+],sum2[i]);
}
ll ma=-1e18;
for(int i=k;i+k<=n;i++)
ma=max(dp1[i]+dp2[i+],ma);
printf("%lld\n",ma);
}
return ;
}

2018年长沙理工大学第十三届程序设计竞赛 H数学考试的更多相关文章

  1. H-数学考试 想法题+最新头文件 2018年长沙理工大学第十三届程序设计竞赛

    https://www.nowcoder.com/acm/contest/96/H 坑点:INF开太小了... #define _CRT_SECURE_NO_WARNINGS #include< ...

  2. 2018年长沙理工大学第十三届程序设计竞赛 E小木乃伊到我家(spfa模版)

    链接:https://www.nowcoder.com/acm/contest/96/E来源:牛客网 小木乃伊到我家 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他 ...

  3. 2018年长沙理工大学第十三届程序设计竞赛 J杯子

    链接:https://www.nowcoder.com/acm/contest/96/J来源:牛客网 杯子 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言655 ...

  4. 2018年长沙理工大学第十三届程序设计竞赛 Dzzq的离散数学教室1

    Dzzq的离散数学教室1 链接:https://www.nowcoder.com/acm/contest/96/D来源:牛客网 zzq的离散数学教室1 时间限制:C/C++ 1秒,其他语言2秒 空间限 ...

  5. 2018年长沙理工大学第十三届程序设计竞赛 G 逃离迷宫 【BFS】

    链接:https://www.nowcoder.com/acm/contest/96/G 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...

  6. 2018年长沙理工大学第十三届程序设计竞赛 C 取手机 【概率】

    链接:https://www.nowcoder.com/acm/contest/96/C 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...

  7. 2018年长沙理工大学第十三届程序设计竞赛 E 小木乃伊到我家 【最短路】

    时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 AA的欧尼酱qwb是个考古学家,有一天qwb发 ...

  8. 2018年长沙理工大学第十三届程序设计竞赛 I 连续区间的最大公约数

    连续区间的最大公约数 思路:参照BZOJ 4488: [Jsoi2015]最大公约数脑补出的一个\(map\)套\(vector\)的写法,写起来比线段树短,运行时间比线段树快. 代码: #pragm ...

  9. 哈尔滨理工大学第七届程序设计竞赛初赛(BFS多队列顺序)

    哈尔滨理工大学第七届程序设计竞赛初赛https://www.nowcoder.com/acm/contest/28#question D题wa了半天....(真真正正的半天) 其实D题本来就是一个简单 ...

随机推荐

  1. linux安装Zabbix监控

    源码包3.4.0下载  https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.4.0/zabbix-3.4 ...

  2. centos iscsi 配置

    首先是服务器的设置:[root@localhost 桌面]# yum install scsi-target-*  -y     安装服务  配置yum的方法太简单了,我就不写了[root@local ...

  3. Phoenix on HBase

    (一)概要 Apache Phoenix是基于BSD许可开源的一个Java中间层,可以让开发者在Apache HBase上执行SQL查询.Apache Phoenix主要特性: 嵌入式的JDBC驱动, ...

  4. 【jsoi】第一季 [略]精简题解

    UPD:好像有两道题的代码逃跑了?= =就先不找了,反正都是水题. 精简题解系列第四弹.(其实也不是那么精简啊= =) [JSOI2008]最大数maxnumber 单点修改,区间最大值查询,裸线段树 ...

  5. HDU 6096 AC自动机

    n个字符串 m个询问 每个询问给出前后缀 并且不重合 问有多少个满足 m挺大 如果在线只能考虑logn的算法 官方题解:对n个串分别存正序倒序 分别按照字典序sort 每一个串就可以被化作一个点 那么 ...

  6. HTTP状态码 304

    HTTP 304 错误Not Modified 客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档).服务器告诉客户,原来缓冲的 ...

  7. 阿里云 linux 找回mysql root密码

    不小心手贱修改了密码,而且使用phpMyAdmin这种自动生成密码,又没记录密码,真实醉了   搜了半天,问题多多,想过回滚磁盘到昨天,在阿里云已经买了付费找密码 最后终于自己解决了,其实很简单 cd ...

  8. python基础6 - while 循环与转义字符

    8. while 循环基本使用 8.1 while 语句基本语法 初始条件设置 —— 通常是重复执行的 计数器 while 条件(判断 计数器 是否达到 目标次数): 条件满足时,做的事情1 条件满足 ...

  9. python中模块的引用

    一. 模块的定义 定义 python模块(Module),是一个python文件,以.py结尾,包含了python对象定义和python语句.模块让你能够有逻辑地组织你的python代码段,把相关的代 ...

  10. 终端命令对字符串进行sha1、md5、base64、urlencode/urldecode

    sha1.md5.base64 mac $ echo -n foo|shasum 0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33 - $ 2c26b46b68ffc6 ...