题目描述

小伟报名参加中央电视台的智力大冲浪节目。本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每个参赛者m元。先不要太高兴!因为这些钱还不一定都是你的?!接下来主持人宣布了比赛规则:

首先,比赛时间分为n个时段(\(n≤500\)),它又给出了很多小游戏,每个小游戏都必须在规定期限ti前完成(\(1≤t_i≤n\))。如果一个游戏没能在规定期限前完成,则要从奖励费\(m\)元中扣去一部分钱\(w_i\),\(w_i\)为自然数,不同的游戏扣去的钱是不一样的。当然,每个游戏本身都很简单,保证每个参赛者都能在一个时段内完成,而且都必须从整时段开始。主持人只是想考考每个参赛者如何安排组织自己做游戏的顺序。作为参赛者,小伟很想赢得冠军,当然更想赢取最多的钱!注意:比赛绝对不会让参赛者赔钱!

输入格式

输入文件riddle.in,共\(4\)行。

第1行为\(m\),表示一开始奖励给每位参赛者的钱;

第2行为\(n\),表示有\(n\)个小游戏;

第3行有\(n\)个数,分别表示游戏\(1\)到\(n\)的规定完成期限;

第4行有\(n\)个数,分别表示游戏\(1\)到\(n\)不能在规定期限前完成的扣款数。

输出格式

输出文件riddle.out,仅1行。表示小伟能赢取最多的钱。

输入输出样例

输入 #1

10000

7

4 2 4 3 1 4 6

70 60 50 40 30 20 10

输出 #1

9950

解析

堆+贪心

我们有一个总数,目的是减去一部分数而使得总数减去这一部分数后总数为最大的。

首先将所有的价值取相反数加到一个变量里,然后我们就把求最小值转换为求最大值了。

根据时间期限按照从小到大进行排序,然后按照以下思路:

  1. 如果当前时间小于等于当前期限,那么就说明该任务是可以做的,把做完该任务的价值放入堆中;
  2. 反之大于当前期限,我们就比较堆顶价值与当前价值的大小,如果堆顶价值小于当前价值,那就进行替换。

    将堆中的元素全部相加然后与总数相加就是答案。
#include <cstdio>
#include <iostream>
#include <cmath>
#include <algorithm>
#include <queue>
#include <stack>
#include <iomanip>
#include <cstring>
#define re register
#define Max 550
struct IQ {
int x, val;
friend bool operator < (IQ a, IQ b) {
return a.x < b.x;
}
}t[Max];
int n, ans, m, T = 1;
std :: priority_queue<int, std :: vector<int>, std :: greater<int> > q;
int main() {
scanf("%d%d",&m,&n);
for(re int i = 1; i <= n; ++ i) scanf("%d",&t[i].x);
for(re int i = 1; i <= n; ++ i) scanf("%d",&t[i].val), ans += -t[i].val;
std :: sort(t+1,t+1+n);
for(re int i = 1; i <= n; ++ i) {
if(T <= t[i].x) T ++, q.push(t[i].val);
else if(t[i].val > q.top()) q.pop(), q.push(t[i].val);
}
while(!q.empty()) ans += q.top(), q.pop();
printf("%d",m+ans);
return 0;
}

洛谷P1230智力大冲浪 题解的更多相关文章

  1. 洛谷 P1230 智力大冲浪 题解

    P1230 智力大冲浪 题目描述 小伟报名参加中央电视台的智力大冲浪节目.本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每个参赛者 \(m\)元.先不要太高兴!因为这些钱还不一定都是你的 ...

  2. 洛谷 P1230 智力大冲浪

    洛谷 P1230 智力大冲浪 题目描述 小伟报名参加中央电视台的智力大冲浪节目.本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每个参赛者m元.先不要太高兴!因为这些钱还不一定都是你的?! ...

  3. 洛谷P1230 智力大冲浪

    题目描述 小伟报名参加中央电视台的智力大冲浪节目.本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每个参赛者m元.先不要太高兴!因为这些钱还不一定都是你的?!接下来主持人宣布了比赛规则: ...

  4. C++ 洛谷P1230 智力大冲浪

    题目描述 小伟报名参加中央电视台的智力大冲浪节目.本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每个参赛者m元.先不要太高兴!因为这些钱还不一定都是你的?!接下来主持人宣布了比赛规则: ...

  5. P1230 智力大冲浪(洛谷)

    题目描述 小伟报名参加中央电视台的智力大冲浪节目.本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每个参赛者m元.先不要太高兴!因为这些钱还不一定都是你的?!接下来主持人宣布了比赛规则: ...

  6. P1230 智力大冲浪 洛谷

    https://www.luogu.org/problem/show?pid=1230 题目描述 小伟报名参加中央电视台的智力大冲浪节目.本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每 ...

  7. P1230 智力大冲浪

    题目描述 小伟报名参加中央电视台的智力大冲浪节目.本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每个参赛者m元.先不要太高兴!因为这些钱还不一定都是你的?!接下来主持人宣布了比赛规则: ...

  8. LOJ P10004 智力大冲浪 题解

    每日一题 day37 打卡 Analysis 经典的带限期和罚款的单位时间任务调度问题 将 val 从大到小排序,优先处理罚款多的,将任务尽量安排在期限之前,并且靠后,如果找不到,则放在最后面 #in ...

  9. [Luogu P1230]智力大冲浪

    题目链接 这道题,贪就对了. 先按照价值排序,从大到小.当前考虑的的就先放到尽可能晚的时间点,为其他的创造机会,如果这一个的所有可用时间段都被占据,就只能扣钱了. #include<fstrea ...

随机推荐

  1. python爬取电影网站信息

    一.爬取前提1)本地安装了mysql数据库 5.6版本2)安装了Python 2.7 二.爬取内容 电影名称.电影简介.电影图片.电影下载链接 三.爬取逻辑1)进入电影网列表页, 针对列表的html内 ...

  2. 转载:string、const char*、 char* 、char[]相互转换

    本文转自:https://blog.csdn.net/rongrongyaofeiqi/article/details/52442169 一:转化总结形式如下: 使用时,要对源格式和目标格式进行初始化 ...

  3. 用siege测试接口高并发

    siege -c 255 -r 2555 "http://10.1.1.6:3001/decode POST <./api.json" -t 100s

  4. lombok的介绍、使用、简单分析和插件

    学习下Lombok. 关于POJO Java面向对象编程中的特性中有封闭性和安全性.封闭性即对类中的域变量进行封闭操作,即用private来修饰他们.如此一来,其他类就不能对该变量访问了.这样,我们就 ...

  5. 后台数据转换成Excel,前台下载

    <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactI ...

  6. .Net IOC框架入门之——Unity

    一.概述 IOC:英文全称:Inversion of Control,中文名称:控制反转,它还有个名字叫依赖注入(Dependency Injection). 作用:将各层的对象以松耦合的方式组织在一 ...

  7. 进程、线程、轻量级进程、协程与 go 的 goroutine

    本文内容 进程 线程 协程 Go 中的 goroutine 参考资料 最近,看一些文章,提到“协程”的概念,心想,进程,线程,协程,前两个很容易,任何一本关于操作系统的书都有说,开发时也经常用,但是协 ...

  8. 【转载】ArrayList使用LastIndexOf方法查找最后一个符合条件的元素位置

    在C#的编程开发中,ArrayList集合是一个常用的非泛型类集合,在ArrayList集合中如果需要查找最后一个符合条件的元素所在的位置,可以使用ArrayList集合的LastIndexOf方法, ...

  9. 使用vue导出excel文件

    今天再开发中遇到一件事情,就是怎样用已有数据导出excel文件,网上有许多方法,有说用数据流的方式,https://www.cnblogs.com/yeqrblog/p/9758981.html,但是 ...

  10. 实验吧——你真的会PHP吗?(intval范围 php中\00的利用)

    题目地址:http://ctf5.shiyanbar.com/web/PHP/index.php 抓包在header中发现提示 访问得到源码 <?php $info = "" ...