hdu 3415 Max Sum of Max-K-sub-sequence

R语言LASSO回归作图为什么X轴使用-log(λ)而不是log(λ),如何转化为log(λ)? 🏆本文收录于 《全栈Bug调优(实战版)》 专栏,该专栏专注于分享我在真实项目开发中遇到的各类疑难Bug及其深层成因,并系统提供高效、可复现的解决思路和实操方案。无论你是刚入行的新手开发者,还是拥有多年项目经验的资深工程师,本专栏都将为你提供一条系统化、高质量的问题排查与优化路径,助力你加速成长,攻克技术壁垒,迈向技术价值最大化与职业发展的更高峰🚀! 阅读详情

题目描述:

Max Sum of Max-K-sub-sequence

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 4208    Accepted Submission(s): 1503


Problem Description
Given a circle sequence A[1],A[2],A[3]......A[n]. Circle sequence means the left neighbour of A[1] is A[n] , and the right neighbour of A[n] is A[1].
Now your job is to calculate the max sum of a Max-K-sub-sequence. Max-K-sub-sequence means a continuous non-empty sub-sequence which length not exceed K.
 

Input
The first line of the input contains an integer T(1<=T<=100) which means the number of test cases.
Then T lines follow, each line starts with two integers N , K(1<=N<=100000 , 1<=K<=N), then N integers followed(all the integers are between -1000 and 1000).
 

Output
For each test case, you should output a line contains three integers, the Max Sum in the sequence, the start position of the sub-sequence, the end position of the sub-sequence. If there are more than one result, output the minimum start position, if still more than one , output the minimum length of them.
 

Sample Input
  
4 6 3 6 -1 2 -6 5 -5 6 4 6 -1 2 -6 5 -5 6 3 -1 2 -6 5 -5 6 6 6 -1 -1 -1 -1 -1 -1
 

Sample Output
  
7 1 3 7 1 3 7 6 2 -1 1 1
 

Author
shǎ崽@HDU
 

Source
 

Recommend
lcy

思路:
估计是dp
状态转移: dp[i]=sum[i]-min(sum[j])     (i-k<j<i)
维护sum[i] 最小就行
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>

#define inf 0xfffffff
#define BUG puts("Here");system("pause")

using namespace std;
int const nMax =200010;
typedef long long LL;

LL dp[nMax];
LL sum[nMax];
int l[nMax];
int r[nMax];
LL a[nMax];
int n,k;

int q[nMax],he,ta;
void queue(int i){
    while(he<ta){
        int j=q[he],jj=q[he+1];
        if(i-j>k||sum[jj]<sum[j])he++;
        else break;
    }
    dp[i]=sum[i]-sum[q[he]];
    l[i]=q[he]+1;
    return ;
}
void insert(int i){
    while(he<ta){
        int j=q[ta];
        if(sum[i]<sum[j])ta--;
        else break;
    }
    q[++ta]=i;
    return ;
}


void DP()
{
    for(int i=1;i<=n+k;i++){
        queue(i);
        insert(i);
     //   printf("dp[%d]=%d\n",i,dp[i]);
    }
    LL ans=-inf; //printf("ans=%d\n",ans);
    int al=0,ar(0);
    for(int i=1;i<=n+k;i++)if(dp[i]>ans){

        ans=dp[i];// printf("  --dp[%d]=%d ans=%d\n",i,dp[i],ans);
        al=l[i];
        ar=i;
    }else if(ans==dp[i]){
        if(l[i]<al){
            ar=i;
            al=l[i];
        }else
        if(l[i]==al&&(ar-al>i-l[i])){
            ar=i;
           al=l[i];
       }
    }
    if(al>n)al-=n;
    if(ar>n)ar-=n;
    printf("%I64d %d %d\n",ans,al,ar);
    return ;
}

int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        sum[0]=0;
        dp[0]=0;
        scanf("%d%d",&n,&k);
        for(int i=1;i<=n;i++){
            scanf("%I64d",&a[i]);
            sum[i]=sum[i-1]+a[i];
        }
        for(int i=n+1;i<=2*n;i++){
            sum[i]=sum[i-1]+a[i-n];
        }
       // BUG;
        ta=he=0;
        q[0]=0;
        DP();
    }
    return 0;
}




如何配置SSC CANopen的excel文件 如何配置 CANOpen 的 EXCEL 文件 阅读详情

相关推荐

SecureCRT 9.0最新版安装与激活全攻略(附驱动识别技巧)

本文提供SecureCRT 9.0最新版的详细安装与激活指南,并重点解析了嵌入式开发中串口连接的硬件驱动识别技巧。内容涵盖从安全获取软件、解决USB转串口驱动兼容性问题,到配置SSH与串口会话的完整流程,旨在帮助开发者和工程师高效部署并精通使用这款终端仿真利器。

star的博客 410

hdu3415——Max Sum of Max-K-sub-sequence

Max Sum of Max-K-sub-sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 6130    Accepted Submission(s): 2234 Problem Description

Alex 1023

【顾邦小讲堂】第十九期 RC Snubber吸收电路详解:抑制MOSFET振铃现象与过冲的设计技巧!

通过RC Snubber电路有效抑制MOSFET DS端的过冲及振铃现象,帮助工程师们在设计中提升电路的稳定性和可靠性

GBupupup的博客 3789

HDU3415 Max Sum of Max-K-sub-sequence 单调队列

HDU3415 Max Sum of Max-K-sub-sequence 单调队列

htrdchh的博客 281

AI Agent开发实战:100个真实场景题库解析

AI Agent开发涉及复杂的需求理解、架构设计及安全防护等关键技术环节。在工程实践中,开发者常面临需求偏差、系统崩溃等挑战,特别是在金融、医疗等高要求场景下。通过真实案例题库,开发者能系统性地掌握需求分析、架构决策树建模(如向量数据库选型)、安全攻防策略(如提示词注入防御)等核心技能。这些实战经验不仅能提升Agent的可用性和安全性,还能优化其在电商客服、智能家居等场景中的表现。题库采用动态难度系统,覆盖从基础到高级的开发挑战,是AI工程化落地的重要参考。

weixin_29057695的博客 346

Synopsys安装教程Ubuntu22.04版本

在Ubuntu22版本上安装Synopsys等系列工具,安装DC,VCS等等

qq_59529218的博客 5727

[HDU 3415] Max Sum of Max-K-sub-sequence

Max Sum of Max-K-sub-sequence Problem Description Given a circle sequence A[1],A[2],A[3]......A[n]. Circle sequence means the left neighbour of A[1] is A[n] , and the right neighbour of A[n] is A[...

weixin_33995481的博客 182

RAG——RAG 索引(文档解析技术)

本文介绍了RAG系统中文档解析的关键技术,重点分析了如何通过LangChain的Document Loaders处理多种格式文档。文章指出高质量文档解析对RAG系统效果的决定性作用,并详细讲解了PDF、TXT、Word等常见格式的解析方法。作者提供了代码示例和Gitee开源项目链接,特别强调了PDF解析的深入方案,同时介绍了相关依赖库的安装配置。文章还展示了如何定义通用文档加载方法,为开发者提供了实用的技术参考。

小志的博客 753

HDU 3415——Max Sum of Max-K-sub-sequence

Problem Description Given a circle sequence A[1],A[2],A[3]......A[n]. Circle sequence means the left neighbour of A[1] is A[n] , and the right neighbour of A[n] is A[1]. Now your job is to calculate

蛤蛤~ 946

用Plecs搞定半桥LLC谐振变换器仿真:从开环模型搭建到闭环PI调参全流程

本文详细介绍了使用Plecs仿真工具进行半桥LLC谐振变换器从开环模型搭建到闭环PI调参的全流程操作。涵盖仿真环境准备、关键元件参数计算、波形异常排查、闭环控制实现及PI参数整定等核心内容,特别针对仿真中的收敛性问题提供实用解决方案,助力电力电子设计者高效完成LLC变换器仿真验证。

weixin_28455801的博客 571

Ceres-solver examples之pose_graph_3d学习笔记

Ceres-solver examples之pose_graph_3d学习笔记简要说明变量说明关键步骤一、Costfunction的搭建其中包括:二、构造Problem 简要说明 ceres-solver库是google的非线性优化库,可以对slam问题,机器人位姿进行优化,使其建图的效果得到改善。pose_graph_3d是官方给出的二维平面上机器人位姿优化问题,需要读取一个g2o文件,运行程序...

幽冥小龙的博客 3890

HDU 3415 Max Sum of Max-K-sub-sequence [单调队列]【杂类】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3415 ————————————-. Max Sum of Max-K-sub-sequenceTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s

Tabris的博客 452

用R来做一个临床研究亚组分析的森林图

在编程语言里R语言最强大的功能是做图功能,我们知道在做Meta分析的时候会需要做森林图,实际上我们在很多临床研究中也经常看到森林图,主要是亚组分析的森林图,比如下面这篇文章里的一个森林图: 今天就教教大家怎么用R语言来做上面这种亚组分析的森林图 1. 在Excel里编辑好数据,按照下面的格式整理,保存为csv格式 2. 下载安装R跟Rstudio R软件的下载地址: https://mirrors.tuna.tsinghua.edu.cn/CRAN/ Rstudio下

Mrrunsen的博客 5340

HDU 3415 Max Sum of Max-K-sub-sequence 最长K子段和

链接:http://acm.hdu.edu.cn/showproblem.php?pid=3415 题意:给出一个数环,要找出其中9长度小于等于K的和最大的子段。 思路:不能采用最暴力的枚举,题目的数据量是10^5,O(N^2)的枚举回去超时,本题采用的很巧妙的DP做法,是用单调队列优化的DP。 运用的是STL的deque,从i:1~a找到以其中以i为尾的符合条件的子段,并将i本身放入双向队

看曙光 1527

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

HDU 3415 Max Sum of Max-K-sub-sequence

题目链接:Problem - 3415 (hdu.edu.cn) Problem Description Given a circle sequence A[1],A[2],A[3]......A[n]. Circle sequence means the left neighbour of A[1] is A[n] , and the right neighbour of A[n] is A[1]. Now your job is to calculate the max sum of a Max-K

m0_55682843的博客 182

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

hdu3415 Max Sum of Max-K-sub-sequence

Max Sum of Max-K-sub-sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3193    Accepted Submission(s): 1136 Problem Description

喵呜的Blog 2243

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

【DP+单调队列】 hdu3415 Max Sum of Max-K-sub-sequence

Max Sum of Max-K-sub-sequence 题目:http://acm.hdu.edu.cn/showproblem.php?pid=3415 题意:一个长度为n包含正负整数的数环,即第1个的左边是第n个。从中选一个不超过k的序列,使得序列和最大,最大值相同选开始点最小的,开始点相同选长度最小的。 题解:不难看出动态方程为dp[i]=max{sum[i]-sum[j]}(i-

Ted's 游乐园 2231

HDU - 3415 Max Sum of Max-K-sub-sequence

题意:求长度不超过K的最大的连续序列的和 思路:采用单调队列,我们要求的是Max{sum[i]-sum[j]}(i-j#include #include #include #include using namespace std; const int MAXN = 1000005; const int INF = 0x3f3f3f3f; int n,k; int arr[MAXN],s

那些年 961

hdu3415 Max Sum of Max-K-sub-sequence 单调队列

//hdu3415 Max Sum of Max-K-sub-sequence //单调队列 //首先想到了预处理出前缀和利用s[i] - s[j]表示(j,i]段的和 //之后的问题就转换成了求一个最小的s[j]了,这样就可以单调队列 //求最小值。 //队列中维护的是区间的开始的位置j,我们插入队列中的是j-1,因为 //这个时候s[i] - s[j-1]刚好就是[j,i]段闭区间的和 /

TIMELIMITE的专栏 736

Max Sum of Max-K-sub-sequence HDU - 3415 (单调队列 好题)

题意: 给定n长度的序列, 求其中连续且长度不超过k的子序列的最大和 题解: 很常见的一类题, 和这道题非常类似, 一个是求子序列最大长度, 一个是求子序列最大和, 下面来说一下这道题 首先运用一个预处理的思想, 定义sum[i] = ∑1isi\sum_1^is_i∑1i​si​ 如此一来, maxK[i, j] = sum[j] - min{sum[i] | 1&amp;lt;=i&amp;lt;j}, 也...

Suprit's blog 572

HDU 3415 Max Sum of Max-K-sub-sequence 单调队列

题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=3415 题意:求序列中长度不大于k的连续子序列的最大和使多少 我们可以用ANS[i] 表示 以第i个数为右边界的一个K区间的最大和的值 那么有方程 显然这里可以用一个长度为k的单调递增队列来维护最小值代码:#include <bits/stdc++.h> #define sf scanf #def

SolarDomo的博客 387
上一篇: hdu 3075 Print Article
下一篇: hdu 2177 取(2堆)石子游戏
utoppia
博客等级 码龄14年 14粉丝 240原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值