题目链接: 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. IO流(7)获取指定文件夹下的所有文件

    /* * 把E:\JavaSE目录下所有的java结尾的文件的绝对路径给输出在控制台. * * 分析: * A:封装目录 * B:获取该目录下所有的文件或者文件夹的File数组 * C:遍历该File ...

  2. 第二课 eclipse安装

    下载并解压到C:\Program Files\eclipse 目录情况如图所示:

  3. 【Python】【Web.py】详细解读Python的web.py框架下的application.py模块

    详细解读Python的web.py框架下的application.py模块   这篇文章主要介绍了Python的web.py框架下的application.py模块,作者深入分析了web.py的源码, ...

  4. 理解SQL SERVER中的逻辑读,预读和物理读

    转自:https://www.cnblogs.com/CareySon/archive/2011/12/23/2299127.html 在我的上一篇关于SQL SERVER索引的博文,有圆友问道关于逻 ...

  5. 让声音更清晰,用PR去掉视频中的噪音

    Premiere V7.0没有支持当前文件类型的输入源的问题 25 我是新手,把DVD影片放到电脑里,显示的是VOB文件,导入类型显示的是所有支持格式,于是我就点击了VOB文件,但是说没有支持当前文件 ...

  6. swoole udp

    server.php <?php $server = new swoole_server('127.0.0.1', 9502, SWOOLE_PROCESS, SWOOLE_SOCK_UDP); ...

  7. Typecho博客让文章列表页只显示摘要的方法

    在当前主题的 index.php 文件中找到代码 <?php $this->content('阅读剩余部分...'); ?> 将其替换为 <?php $this->exc ...

  8. cc150 --链表分割

    题目描述 编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前 给定一个链表的头指针 ListNode* pHead,请返回重新排列后的链表的头指针.注意:分割以后 ...

  9. jquery日期时间控件

    代码下载地址:  jquery日期时间控件下载地址 .  工作中用到, 这里分享一下, 避免重复摸索劳动. 一. HTML 文件    <!DOCTYPE HTML PUBLIC "- ...

  10. python 读取二进制数据到可变缓冲区中

    想直接读取二进制数据到一个可变缓冲区中,而不需要做任何的中间复制操作.或者你想原地修改数据并将它写回到一个文件中去. 为了读取数据到一个可变数组中,使用文件对象的readinto() 方法.比如 im ...