题目链接: https://www.cnblogs.com/Draymonder/p/9536681.html

同上一篇文章,只是 需要记录最大值的开始和结束的位置

#include <iostream>
#include <string.h>
#include <cmath>
using namespace std;
const int N = 1e5 + ; int n,k;
int s[N<<],sum[N<<];
int Q[N<<]; int main ()
{
freopen("in.txt","r",stdin);
int T; scanf("%d",&T);
while (T--) {
memset(Q,,sizeof(Q));
memset(sum,,sizeof(sum));
scanf("%d %d", &n, &k);
for(int i=; i<=n; i++)
scanf("%d",&s[i]), s[i+n]=s[i];
n<<=;
for(int i=;i<=n;i++)
sum[i] = sum[i-]+s[i]; //printf("%d ",sum[i]);
// for(int i=1;i<=n;i++)
// printf("%d ", sum[i]);
// puts("");
int mx = -N, ans1=n+,ans2=-;
for(int i=;i<=n;i++) {
if(i <= k) {
if(sum[i] > mx) {
mx = sum[i];
ans1=,ans2=i;
}
}
}
//printf("%d %d\n",ans1, ans2);
int st=,ed=;
for(int i=; i<=n; i++) {
//[i-k+1,i] 区间长度为k
while (st < ed && Q[st] < i-k)
st++;
if(st < ed) {
int ans = sum[i] - sum[Q[st]];
if(mx < ans) {
mx =ans;
ans1 = Q[st]+;
ans2 = i;
}
}
while (st < ed && sum[i] <= sum[Q[ed-]])
ed--;
Q[ed++] = i;
//cout << i<<" "<<ans1 <<" "<<ans2<<endl;
}
printf("%d %d %d\n", mx, ans1>n/?ans1-n/:ans1, ans2>n/?ans2-n/:ans2); }
return ;
}

hdu 3415 Max Sum of Max-K-sub-sequence 单调队列优化DP的更多相关文章

  1. HDU 5945 / BestCoder Round #89 1002 Fxx and game 单调队列优化DP

    Fxx and game 问题描述   青年理论计算机科学家Fxx给的学生设计了一款数字游戏. 一开始你将会得到一个数\:XX,每次游戏将给定两个参数\:k,tk,t, 任意时刻你可以对你的数执行下面 ...

  2. 【单调队列优化dp】HDU 3401 Trade

    http://acm.hdu.edu.cn/showproblem.php?pid=3401 [题意] 知道之后n天的股票买卖价格(api,bpi),以及每天股票买卖数量上限(asi,bsi),问他最 ...

  3. bzoj1855: [Scoi2010]股票交易 单调队列优化dp ||HDU 3401

    这道题就是典型的单调队列优化dp了 很明显状态转移的方式有三种 1.前一天不买不卖: dp[i][j]=max(dp[i-1][j],dp[i][j]) 2.前i-W-1天买进一些股: dp[i][j ...

  4. 【HDU 3401 Trade】 单调队列优化dp

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3401 题目大意:现在要你去炒股,给你每天的开盘价值,每股买入价值为ap,卖出价值为bp,每天最多买as ...

  5. 单调队列优化dp,k次移动求最长路

    洛谷2254 给你k次移动 每次移动给你一个时间段 a,b和方向dir 地图上有障碍物 为了不撞上障碍物你可以施法让箱子停下来 问箱子可以走的最长路 ((以下是洛谷的题解)) /*首先考虑对于时间t来 ...

  6. hdu 3401 单调队列优化DP

    Trade Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status ...

  7. hdu 3401 单调队列优化+dp

    http://acm.hdu.edu.cn/showproblem.php?pid=3401 Trade Time Limit: 2000/1000 MS (Java/Others)    Memor ...

  8. 【HDU】3401:Trade【单调队列优化DP】

    Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  9. HDU 4122 Alice's mooncake shop 单调队列优化dp

    Alice's mooncake shop Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem ...

  10. hdu 5945 Fxx and game(单调队列优化DP)

    题目链接:hdu 5945 Fxx and game 题意: 让你从x走到1的位置,问你最小的步数,给你两种走的方式,1.如果k整除x,那么你可以从x走一步到k.2.你可以从x走到j,j+t<= ...

随机推荐

  1. nodejs(一)process模块

    1.process是一个全局进程,你可以直接通过process变量直接访问它. process实现了EventEmitter接口,exit方法会在当进程退出的时候执行.因为进程退出之后将不再执行事件循 ...

  2. vscode主题配色

    https://www.cnblogs.com/garvenc/p/vscode_customize_color_theme.html

  3. tcp3次握手,https加密,ca认证

    参考: https://baijiahao.baidu.com/s?id=1570143475599137&wfr=spider&for=pc

  4. sql server字符串中怎么添加换行?

    换行/回车,可以使用CHAR函数处理,比如: 1 insert into tbtest (text) values ('abc' + char(13)+char(10) + 'def') 主要还是要看 ...

  5. Shell初学(四)运算符

    一.算术运算符 下表列出了常用的算术运算符,假定变量 a 为 10,变量 b 为 20: 运算符 说明 举例 + 加法 `expr $a + $b` 结果为 30. - 减法 `expr $a - $ ...

  6. js-jquery-SweetAlert【二】配置方法

    一.配置 Argument Default value 含义   Description title null (required) 模态对话框的标题.它可以在参数对象的title参数中设置,也可以在 ...

  7. (转)Kangle配置文件

    kangle配置文件 (重定向自Kangle配置文件) 目录 [隐藏] 1配置文件介绍 2重新加载配置文件 3config 3.1request和response(配置访问控制) 3.2listen( ...

  8. Integer.valueOf方法的源码解读

    public class IntegerDemo { public static void main(String[] args) { Integer i01 = ; ; Integer i03 = ...

  9. CentOS6.7上安装Mysql5.7

    CentOS6.7上安装Mysql5.7 2017年07月22日 18:27:05 阅读数:564 环境的配置总是令人作呕,所以这次表明版本条件: 首先,这是一台新机器 其次,CentOS版本如下: ...

  10. container / pull-left

    <div class="container"> <h2>实例</h2> <div class="pull-left"& ...