set+链表 【POJ Challenge】生日礼物

老旧电脑福音:用VMware虚拟机跑Win11的终极配置指南(含TPM模块添加技巧) 本文详细介绍了如何在老旧电脑上通过VMware虚拟机流畅运行Windows 11的终极配置指南,包括TPM模块添加技巧和性能优化策略。通过合理的硬件分配和系统调优,即使是最古老的设备也能焕发新生,无需昂贵升级即可体验最新操作系统。 阅读详情

2288: 【POJ Challenge】生日礼物

Time Limit: 10 Sec Memory Limit: 128 MB
Submit: 841 Solved: 255
[Submit][Status][Discuss]
Description
ftiasch 18岁生日的时候,lqp18_31给她看了一个神奇的序列 A1, A2, …, AN. 她被允许选择不超过 M 个连续的部分作为自己的生日礼物。
自然地,ftiasch想要知道选择元素之和的最大值。你能帮助她吗?
Input
第1行,两个整数 N (1 ≤ N ≤ 105) 和 M (0 ≤ M ≤ 105), 序列的长度和可以选择的部分。
第2行, N 个整数 A1, A2, …, AN (0 ≤ |Ai| ≤ 104), 序列。
Output
一个整数,最大的和。
Sample Input
5 2
2 -3 2 -1 2
Sample Output
5

可以发现,连续的一段同号整数一定被一起选上.所以把连续的整数合并,去掉0.
先选上所有的正数段,如果段数<=m,直接输出,如果大于,就需要添上一段负数使两个正数段连在一起,或者去掉一段正数。所以把所有数改成正数,用set选最小的。
而且不能选连续的两段,如果左右端点是负数,选他没必要,不能选。
具体怎么搞,见这个题解(思路相同)就

#pragma GCC optimize("O3")
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<set>
#include<cmath>
#define N 100005
#define ll long long
using namespace std;
int n,m,num,tot;
int fro[N],nex[N];
struct node
{
    int id;ll h;
    node(){}node(int x,ll y){id=x;h=y;}
    inline friend bool operator <(const node &x,const node &y){return (x.h!=y.h)?x.h<y.h:x.id<y.id;}
};set<node> s;
ll a[N],ans;
int main()
{
    scanf("%d%d",&n,&m);ll x;
    for(int i=1;i<=n;i++)
    {
        scanf("%lld",&x);if(x==0)continue;
        if(tot==0){a[++tot]=x;continue;}
        if((x>0&&a[tot]>0)||(x<0&&a[tot]<0))a[tot]+=x;
        else a[++tot]=x;
    }
    for(int i=1;i<=tot;i++)if(a[i]>0){num++;ans+=a[i];}
    if(num<=m){cout<<ans;return 0;}
    m=num-m;int p=1;if(a[p]<0)p++;if(a[tot]<0)tot--;
    for(int i=p;i<=tot;i++)
    {
        if(a[i]<0)a[i]=-a[i];
        fro[i]=i-1;nex[i]=i+1;
        s.insert(node(i,a[i]));
    }
    fro[p]=0;nex[0]=p;nex[tot]=0;a[0]=10000000000000ll;
    while(m--)
    {
        int x=s.begin()->id;
        ans-=a[x];
        a[x]=-a[x];
        a[x]+=a[fro[x]];
        a[x]+=a[nex[x]];
        s.erase(s.begin());
        s.erase(node(fro[x],a[fro[x]]));
        s.erase(node(nex[x],a[nex[x]]));
        s.insert(node(x,a[x]));
        if(fro[fro[x]])nex[fro[fro[x]]]=x;
        if(nex[nex[x]])fro[nex[nex[x]]]=x;
        fro[x]=fro[fro[x]];
        nex[x]=nex[nex[x]];
    }
    cout<<ans;
}
怀旧党必备!用iPhone4s重温iOS6的保姆级教程(含游戏资源包) 本文提供了一份详细的iPhone4s降级至iOS6.1.3的保姆级教程,包括设备准备、越狱操作、系统降级及资源优化全流程。通过自制固件和越狱工具,用户可以重温经典的拟物化设计和流畅体验,同时获取经典游戏资源包,打造复古游戏神器。 阅读详情

相关推荐

2026中银杯区块链赛项备赛全攻略:从任务书拆解到高分技巧

区块链技术正从概念走向工程化落地,其核心价值在于通过分布式账本、智能合约与共识机制,构建可信、透明、可追溯的业务协作网络。在供应链溯源、存证、资产流转等场景中,区块链应用已从单一技术验证转向完整业务系统交付,这对开发者的综合能力提出了更高要求。对于职业院校技能大赛而言,选手不仅需要掌握联盟链底层搭建、Solidity合约开发、前后端应用联调等技术,还需具备规范交付与团队协作的工程素养。围绕2026年中银杯湖北省职业院校技能大赛区块链技术应用赛项,本文深入拆解任务书模块与评分逻辑,梳理底层链搭建、智能合约开发

weixin_27960253的博客 334

bzoj2288 生日礼物(贪心)(堆)(链表)

题目 ftiasch 18岁生日的时候,lqp18_31给她看了一个神奇的序列 A1, A2, …, AN. 她被允许选择不超过 M 个连续的部分作为自己的生日礼物。 自然地,ftiasch想要知道选择元素之和的最大值。你能帮助她吗?   我的想法 相邻的两个数如果同为正数或负数可以合并成一个大的正数或负数,这样整个数列就成了正负交替的了。 当m=1时,最大子序列是答案。 我们考虑设置反悔...

A_Bright_CH的博客 528

Sentaurus TCAD学习——Scheme编程语言

sentaurus scheme语言学习记录

摸摸小熊猫的博客 965

【BZOJ 2288】 2288: 【POJ Challenge】生日礼物 (贪心+优先队列+双向链表)

2288: 【POJ Challenge】生日礼物 Description ftiasch 18岁生日的时候,lqp18_31给她看了一个神奇的序列A1,A2, ...,AN. 她被允许选择不超过M个连续的部分作为自己的生日礼物。 自然地,ftiasch想要知道选择元素之和的最大值。你能帮助她吗? Input 第1行,两个整数N(1 ≤N...

weixin_30535167的博客 183

亚马逊广告接口 amazon advertising

亚马逊广告接口官方说明:https://advertising.amazon.com/API/docs/en-us/setting-up/account-setup 一:注册aws开发者账号 注册地址:https://developer.amazon.com 二:填写注册资料 三:进入控制台,生成安全配置文件 进入 Login with Amazon 菜单: 创建配置文件: 四:申请广告接入权限 申请地址:https://advertising.amazon.com/zh-cn/about-api

lzy66666的博客 4776

TI电量计BQ40Z50R2循环学习实战:从量产文件生成到关键标志位解析

本文详细解析了TI电量计BQ40Z50R2的循环学习实战流程,从量产文件生成到关键标志位解析。通过实战案例和易错分析,帮助工程师避开常见陷阱,提升电量计配置效率。重点介绍了循环学习前的准备工作、量产文件生成步骤及关键标志位的深度解读,适用于电池管理系统开发人员。

weixin_30505225的博客 439

Bzoj 2288 生日礼物题解

2288: 【POJ Challenge】生日礼物 Time Limit:10 SecMemory Limit:128 MBSubmit:856Solved:260[Submit][Status][Discuss] Description ftiasch 18岁生日的时候,lqp18_31给她看了一个神奇的序列A1,A2, ...,AN. 她被允许选...

weixin_33790053的博客 231

allegro 约束管理Constraint Manager(一)

介绍Cadence allegro 约束管理器CM的使用方法。

weixin_38975819的博客 8720

BZOJ2288:[POJ Challenge]生日礼物——题解

https://www.lydsy.com/JudgeOnline/problem.php?id=2288 ftiasch 18岁生日的时候,lqp18_31给她看了一个神奇的序列A1,A2, ...,AN. 她被允许选择不超过M个连续的部分作为自己的生日礼物。 自然地,ftiasch想要知道选择元素之和的最大值。你能帮助她吗? 这题很像BZOJ1150:[APIO/...

weixin_33788244的博客 306

动态时间规整(Dynamic Time Warping,DTW):让时间序列分析不再枯燥和代码全分析

动态时间规整(DTW)是一种用于比较时间序列相似性的算法,特别适用于处理长度不同或时间轴不对齐的序列。本文介绍了DTW的核心概念,包括其通过非线性对齐解决时间扭曲问题的能力,以及在语音识别、金融分析等领域的应用。通过Python代码示例,演示了如何计算两个模拟时间序列的DTW距离,并可视化最优对齐路径。结果显示,DTW能够有效捕捉序列间的相似模式,即使它们在时间轴上存在偏移或伸缩。该算法通过最小化累积距离来评估相似性,得分越低表明序列间相似度越高。

此星光明博客 163

uniapp [安卓苹果App端] - 详细实现手机蓝牙连接打印机及打印票据小票/标签/面单/热敏小票订单/快递单等通用兼容适配解决方案,Uniapp对接蓝牙打印机支持各种主流品牌及打印指令,强悍插件

uni-app,安卓Android,苹果ios,安卓app端,苹果App端,uniapp苹果app,蓝牙打印机,uniappAPP实现通过蓝牙连接打印机打印,uniapp蓝牙连接打印机,安卓蓝牙打印插件,蓝牙打印机,蓝牙ble低功率及高功率打印机小票、标签、面单打印,手机PDA蓝牙打印插件,连接蓝牙打印机,蓝牙连接,打印文本、图片、条码、二维码,兼容斑马打印机、佳博打印机,TSC打印机,免费蓝牙打印机组件,蓝牙打印条码,蓝牙打印机连接,热敏蓝牙打印机,便携式打印机,打印机搜索不到,连接失败,发送打印命令

🏆 前端领域优质创作者 1万+

【bzoj2288】【POJ Challenge】生日礼物

Descriptionftiasch 18岁生日的时候,lqp18_31给她看了一个神奇的序列 A1, A2, …, AN. 她被允许选择不超过 M 个连续的部分作为自己的生日礼物。自然地,ftiasch想要知道选择元素之和的最大值。你能帮助她吗?Input第1行,两个整数 N (1 ≤ N ≤ 105) 和 M (0 ≤ M ≤ 105), 序列的长度和可以选择的部分。第2行, N 个整数 A1,

wang_sj的博客 1291

​非线性分析-增加位移量可能出现下面错误。虽然求解无法在所有时间点完成,但在某些点上仍能够求解部分结果。请参阅“帮助系统”中的故障排除,以了解更多信息详情。由于受约束,规划求解引擎无法收敛

基于收敛状态拆分载荷步‌:在已收敛的载荷步基础上,将未收敛的关键区域拆分为更细的子步,比如在载荷突变点前设置5~10个子步,逐步加载。替换冲突约束为弱约束‌:若存在约束冲突,将刚性约束替换为弱弹簧约束(刚度设为1e-6~1e-4),既限制刚体位移,又不影响结构的变形自由度,命令流:SPRING, NODE, K, 1e-6。部分区域约束完整,但存在未被约束的刚体自由度,或约束类型与大变形/接触逻辑冲突,比如某部件的位移约束在初始阶段有效,但大变形后约束位置脱离实际受力点,导致求解器在该阶段无法收敛。

qq_15963745的博客 145

[bzoj2288][pojChallenge]生日礼物【贪心+堆+链表】

题目描述 ftiasch 18岁生日的时候,lqp18_31给她看了一个神奇的序列 A1, A2, …, AN. 她被允许选择不超过 M 个连续的部分作为自己的生日礼物。 自然地,ftiasch想要知道选择元素之和的最大值。你能帮助她吗? 分析 这道题目还是非常简单的,和数据备份几乎是一样的,吐槽完毕。 参照之前我们的思路,因为是m段不同的部分,那么很明显,一段全是同一符号的一定是一起被...

weixin_30483697的博客 257

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

智能消息推送系统设计:避免AI助手过度打扰的技术方案

消息推送系统是现代应用开发中的核心技术组件,其核心原理是通过事件驱动架构实现信息的实时传递。在技术价值层面,优秀的推送系统能够平衡信息及时性与用户体验,避免过度打扰导致的效率下降。特别是在AI助手等智能应用场景中,推送时机的精准判断直接影响用户的工作专注度。当前行业面临的关键挑战包括用户状态感知算法的准确性和消息优先级计算的合理性。通过引入用户行为监控和智能调度机制,可以构建更加人性化的推送体验。本文基于aiohttp异步框架和Redis缓存技术,深入探讨如何避免'狗石'现象,实现消息推送与用户专注度的智能

weixin_33971977的博客 531

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

bzoj2288: 【POJ Challenge】生日礼物【贪心+优先队列+链表】

Description ftiasch 18岁生日的时候,lqp18_31给她看了一个神奇的序列 A1, A2, …, AN. 她被允许选择不超过 M 个连续的部分作为自己的生日礼物。 自然地,ftiasch想要知道选择元素之和的最大值。你能帮助她吗? Input 第1行,两个整数 N (1 ≤ N ≤ 105) 和 M (0 ≤ M ≤ 105), 序列的长度和可以选择的部分。 第...

cdsszjj的博客 847

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【链表】BZOJ 2288: 【POJ Challenge】生日礼物

2288: 【POJ Challenge】生日礼物 Time Limit:10 SecMemory Limit:128 MBSubmit:382Solved:111[Submit][Status][Discuss] Description ftiasch 18岁生日的时候,lqp18_31给她看了一个神奇的序列A1,A2, ...,AN. 她被允许选择不超...

weixin_30872733的博客 190

[bzoj2288][POJ Challenge][贪心][优先队列]生日礼物

Description ftiasch 18岁生日的时候,lqp18_31给她看了一个神奇的序列 A1, A2, …, AN. 她被允许选择不超过 M 个连续的部分作为自己的生日礼物。 自然地,ftiasch想要知道选择元素之和的最大值。你能帮助她吗? Input 第1行,两个整数 N (1 ≤ N ≤ 105) 和 M (0 ≤ M ≤ 105), 序列的长度...

Rose_max的博客 562

Anthropic零层架构:让LLM服务中间件物理消失

大语言模型服务架构中,传统API网关、协议适配、缓存代理等中间件层长期带来高延迟、高运维成本与低缓存命中率问题。其本质是模型与业务契约分离导致的语义鸿沟——输入需经多层解析与转换才能抵达模型内核。Anthropic提出的‘Zero-Layer’范式,通过将接口契约(如input_schema)编译进模型权重,并注入轻量级语义解析头,使模型原生支持输入校验、缓存键生成与HTTP语义理解。该技术不依赖新硬件,实现在单GPU实例上P95延迟压至82ms、CPU占用降37%、运维告警归零,真正实现‘模型即服务’。适

anheku1562的博客 469

bzoj 2288: 【POJ Challenge】生日礼物

题意 ftiasch 18岁生日的时候,lqp18_31给她看了一个神奇的序列 A1, A2, …, AN. 她被允许选择不超过 M 个连续的部分作为自己的生日礼物。 自然地,ftiasch想要知道选择元素之和的最大值。你能帮助她吗? 题解 首先容易想到,一段连续的同一个符号的数是可以缩成一个的。。 那么你就可以得到一个正负正负交错出现的序列 先把全部正数选了。。 然后考虑如果段...

OZY的博客 432

ZUFE 2480 神奇的序列【记忆化搜索】

2480: 神奇的序列 时间限制: 4 Sec  内存限制: 256 MB 提交: 34  解决: 16 [提交][状态][讨论版] 题目描述 序列a如下: a[0] = A; a[1] = B; a[i] = a[pp] * a[qq]; ( i>=2,pp = 向下取整(i/k1),qq = 向下取整(i/k2) ) 有Q次询问,每次询问输入pos,请输出a[pos]

Puya的博客 365

1105: 18岁生日

题目描述 Gardon的18岁生日就要到了,他当然很开心,可是他突然想到一个问题,是不是每个人从出生开始,到达18岁生日时所经过的天数都是一样的呢?似乎并不全都是这样,所以他想请你帮忙计算一下他和他的几个朋友从出生到达18岁生日所经过的总天数,让他好来比较一下。 输入 一个数T,后面T行每行有一个日期,格式是YYYY-MM-DD。如我的生日是1988-03-07。 输出 T行,每行一个数,表示此人...

Jiashun Hao的博客 421
上一篇: 并查集 [Scoi2010]游戏
下一篇: DP Cleaning Up 打扫卫生
QTY_
博客等级 码龄9年 13粉丝 211原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值