首页 > 其他分享 >生日礼物

生日礼物

时间:2023-12-10 17:48:00浏览次数:20  
标签:端点 合并 负数 生日礼物 答案 一段 正数

这一道题目其实我们正负数同时出现时可以先单独考虑正数或负数

我们单独考虑正数,认为负数把原序列分成了若干段,每一段都是连续的正数。如果这些正数段的总数\(≤m\),那么全部选上就是答案

如果不满足,那么我们考虑最终的答案是怎么样的

最终的答案的任意一段的两个端点一定是正数(不然可以不选端点来让答案变得更优),而且左端点的左边一个和右端点的右边一个一定是负数(否则可以选上来让答案变得更优)

所以我们可以考虑删除和合并我们最开始选出来的一些正数段,来让数目满足题意

比如说删除某一段就等于减去这一段的和,合并某两段相邻段,等于减去这两段中间的负数段的和的绝对值

可以证明,对于最终任意一种方案,都可以转换为最开始选的所有正数段通过若干次上面两种操作来达到(想一下,不好用文字描述)

而且我们一定不会删除某一段正数段的时候,又把这个正数段相邻的负数段给合并了,因为不如不合并

然后就可以转化为数据备份这一道题目了

标签:端点,合并,负数,生日礼物,答案,一段,正数
From: https://www.cnblogs.com/dingxingdi/p/17892955.html

相关文章

  • BZOJ 生日礼物
    题目背景翰翰18岁生日的时候,达达给她看了一个神奇的序列$A_1,A_2,\dots,A_n$。她被允许从中选择不超过$M$个连续的部分作为自己的生日礼物。翰翰想要知道选择元素之和的最大值。你能帮助她吗?解题思路可以先合并序列中连续的同为正或负的值,使原序列变为一个一正一......
  • TZOJ8036--生日礼物
    题目简述:给你n个数,让你选取不超过m个连续的区间,区间不重叠,求区间总和最大。标准输入522-32-12标准输出5思路:1.很显然能够想到把原数组简化成形如一正一负的数组。2.特殊情况,当正数连续块小于等于m时答案很显然是所有正数相加。3.一般情况,当正数连......
  • 163. 生日礼物
    题目链接163.生日礼物翰翰\(18\)岁生日的时候,达达给她看了一个神奇的序列\(A_1,A_2,…,A_N\)。她被允许从中选择不超过\(M\)个连续的部分作为自己的生日礼物。......
  • Python | 用Python制作送给女票的生日礼物
    HappyBirthday程序视频地址:​​https://www.bilibili.com/video/BV1R7411C7A1​​代码地址:​​https://github.com/borninfreedom/HappyBirthday​​截图: ......