原题链接

题目描述

“漆黑的夜晚”是一位游戏大神。他玩的游戏共有 n 个挑战房间,和 m 个 debuff。他非常强,只要不是带着所有的 debuff,他都能打过 boss 获得胜利。

进入第 ii 个房间会使他带上编号在 [ l i , r i ] [l_i,\,r_i] [li​,ri​]上的所有 debuff,并获得 s i s_i si​ 积分。如果多次获得编号为 x 的 debuff,视为身上带有,但仅带有一个。他想要知道,在自己能打过 boss(即身上没有集满所有 m 个 debuff)的情况下,他能获得的最大积分是多少?

输入样例

4 5
1 3 30
2 2 40
2 5 80
2 4 60

输出样例

180

算法

(贪心 + 差分)

本题要求求出获得积分的最大值,但又不能获得所有的 debuff,同时我们观察数据给出:积分 s i s_i si​ 必然是整数,所以我们就可以发现获得的 debuff 越多越好,只要不达到 m 个debuff即可,也就是 m - 1 个debuff 最好。

所以我们可以先算出所有的 debuff 积分的和,然后一一减去每一个 debuff 编号所在的积分总值,取其中最大值。

而每一个 debuff 所在的积分总值就可以用 对区间差分的方式 快速求出

C++ 代码

时间复杂度 O ( m a x ( n , m ) ) O(max(n,m)) O(max(n,m))

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
typedef long long ll;
typedef pair<ll, ll> PLL;
const int N = 1e6 + 10,INF = 0x3f3f3f3f;
ll val[N];int main()
{int n,m;cin >> n >> m;ll sum = 0;for (int i = 1;i <= n;i ++ ) {ll l,r,s;cin >> l >> r >> s;val[l] += s,val[r + 1] -= s;sum += s;}ll res = 0;for (int i = 1;i <= m;i ++) val[i] = val[i] + val[i - 1];for (int i = 1;i <= m;i ++) {res = max(sum - val[i],res);}cout << res << '\n';return 0;
}

贪心+差分的题目:gaming相关推荐

  1. 阿里春招笔试2020.3.27(贪心/差分/概率)

    申明:大概题意是从牛客网讨论区嫖的,题目的输入.输出以及数据数据范围也有些不知,大家看看思路就好,这些细节就不管了QAQ.有错欢迎纠正~ 3.27 题目一(贪心) 给定字符串s1,s2,求从s1变为s ...

  2. 中石油训练赛 - 围栏翻新(思维+贪心+差分)

    题目描述 小明的破旧围栏又要喷涂油漆了.围栏由N个木板构成,每个宽度都为1cm,但是高度各不相同.他给自己买了一个喷漆机器,喷涂头恰好也是1cm宽. 小明的喷漆机器是直接喷射的,因此喷头的每一个部位必 ...

  3. jzoj5698-[gdoi2018day1]密码锁【贪心,差分】

    正题 题目大意 nnn个数字,每次可以让一个区间加或减111.然后数字是一个[0,m−1][0,m-1][0,m−1]的循环,求最少次数让所有数字变成000 解题思路 我们做一个%m\%m%m意义下的 ...

  4. 2014年TI杯邀请赛——简易高速差分探头 题目解析

    TI倍邀请赛马上就要开始了,多做几个题练练手,所以以后几期都是关于TI杯邀请赛的,敬请期待. 一.题目再现(完整题目已经上传) 任务:设计并制作一个简易有源高速差分示波器探头,实现差分输入.单端输出功 ...

  5. Too Many Segments (easy version) CodeForces - 1249D1(贪心+差分)

    题意 给多组线段,而每一个点的覆盖次数不超过K,每次可去除一个线段,问最少去多少线段以及线段的位置. The only difference between easy and hard version ...

  6. 168. Leetcode 134. 加油站 (贪心算法-模拟题目)

    class Solution:def canCompleteCircuit(self, gas: List[int], cost: List[int]) -> int:cur_rest_acc ...

  7. 159. Leetcode 122. 买卖股票的最佳时机 II (贪心算法-股票题目)

    class Solution:def maxProfit(self, prices: List[int]) -> int:result = 0for i in range(1,len(price ...

  8. 158. Leetcode 121. 买卖股票的最佳时机 (贪心算法-股票题目)

    class Solution:def maxProfit(self, prices: List[int]) -> int:low, max_profit = float("inf&qu ...

  9. 157. Leetcode 674. 最长连续递增序列 (贪心算法-进阶题目)

    class Solution:def findLengthOfLCIS(self, nums: List[int]) -> int:ans, start = 0, 0for i in range ...

最新文章

  1. 说说你对 HTML 语义化的理解?
  2. 什么是(功能)反应式编程?
  3. Java学习笔记(一)--JDK环境
  4. 电纸书kindle相关产品调研(没搞完)
  5. how is metadata got - DB table iwfndi_med_srh and IWFNDCL_MGW_REQUEST_MANAG
  6. bootstrap table 的简单Demo
  7. 移除Java对象中的属性_在java对象中添加和删除属性
  8. 因策划进军餐饮等虚假营销 TikTok前营销主管被开除
  9. 计算机基础0018,自学考试计算机用基础 0018复习资料.doc
  10. 12v电源正负极区分_弱电工程UPS电源如何安装?如何配置计算?故障如何处理?...
  11. mybatis 高级映射和spring整合之与Spring整合(6)
  12. 苹果Mac 3D 建模渲染软件:Vectorworks
  13. 公司打卡少几秒分析--学会拒绝,学会选择
  14. PHP面向对象学习(一)
  15. php 用户之间通信,PHP,javascript,ajax-2位用户之间的通信
  16. linux下测试权限,linux 文件权限
  17. Python 爬虫案例
  18. 百度杀毒软件2013低调发布
  19. 【Android安全】JEB技巧汇总
  20. RadAsm:object file not found

热门文章

  1. 清除mac其他文件的免费软件:OmniDiskSweeper
  2. 【5】cpp_redis reply
  3. ​全栈创新加速“算力网络”时代来临:英特尔携手中国移动共谱数智华章
  4. 灵西机器人(杭州)人才招聘
  5. JS学习笔记十——时间常用方法
  6. 程序员成长纪——首章
  7. 全景丨0基础学习VR全景制作,后期篇第二章:调色原理和色彩分析
  8. 【NTLM】NTLM协议 与挑战-鉴权协议
  9. Python 爬虫实践-抓取小说
  10. zxing读取一维条码的原理