题目描述

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

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

输入格式

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

第二行为 n,表示有 n 个小游戏;

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

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

输出格式

输出仅一行,表示小伟能赢取最多的钱。

输入输出样例

输入样例

10000
7
4 2 4 3 1 4 6
70 60 50 40 30 20 10

输出样例

9950

说明/提示

对于 100% 的数据,1≤n≤500,1≤m≤5×10^5,1≤ti​≤n, 1≤wi​≤1000。

题解

通过读题可以知道,在规定时间内没有完成游戏是会被扣钱的,要想获得最多的钱数,就只能扣去最小的钱数,于是我们可以想到贪心的做法。

忽略我第一把贪心贪错了的思路,直接说最后改对的思路吧。既然想扣去最少的钱,那么我们干脆对这些游戏按照 w 的大小进行降序排序,w 值相等的,就按照 t 的大小降序排序,然后我们从1~n遍历。若第i个游戏的时间ti的位置还没有被占用,就将这个游戏排在时间ti时完成,如果时间ti已经安排了游戏,那么就往前找到第一个没被占用的时间,将这个游戏安排在这个位置,(这就是为什么t也要降序排)如果无法安排位置了,就将当前游戏的wi加入答案统计。最后,我们统计完毕,输出最终答案就可以了。

思路应该很好懂,所以我们上代码。(忽略掉我丑丑的马蜂,夹缝生存)

代码

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int m,n,sum,ans;
bool b[510];
struct game{int t,w;
}g[510];
inline bool cmp(game a,game b){if(a.w==b.w) return a.t>b.t;return a.w>b.w;
}
int main(){scanf("%d%d",&m,&n);for(int i=1;i<=n;i++){scanf("%d",&g[i].t);}for(int i=1;i<=n;i++){scanf("%d",&g[i].w);}sort(g+1,g+1+n,cmp);int j;for(int i=1;i<=n;i++){j=g[i].t;while(b[j]&&j)j--;if(j!=0) b[j]=1;else ans+=g[i].w;}printf("%d",m-ans);return 0;
}

洛谷P1230 智力大冲浪相关推荐

  1. 洛谷 P1230 智力大冲浪

    我的第一篇题解(辣鸡题解)洛谷 P1230 智力大冲浪 题目描述 小伟报名参加中央电视台的智力大冲浪节目.本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每个参赛者m元.先不要太高兴!因为 ...

  2. 洛谷P1230 智力大冲浪(贪心)

    P1230 智力大冲浪 题解:准着一个贪心思想,在尽可能短的时间内,做价值尽可能多的题. 因此,我们可以按照价值从大到小排个序,然后对于每一道题看在时间限制内可以做哪几道题.时间复杂度Θ(N2)\Th ...

  3. 做题记录 洛谷P1230 智力大冲浪

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

  4. 洛谷p1230 智力大冲浪 (贪心问题)

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

  5. P1230 智力大冲浪

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

  6. P1230 智力大冲浪 贪心

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

  7. [Luogu P1230]智力大冲浪

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

  8. 【题解】p1230 智力大冲浪

    总结: 1.因为完成游戏的时间都是1分钟,所以不用考虑时间不同而带来的影响,这就是不用贪心的原因,所以可以用贪心 2.从每个游戏的最晚时间向前循环,是为了尽可能让后面游戏完成. #include< ...

  9. luogu P1230 智力大冲浪

    添加链接描述 #include<bits/stdc++.h> using namespace std; const int N=510; struct node {int time,mon ...

最新文章

  1. Pyqt5_QWidget
  2. python读取nc文件并转换成csv_python3使用类型转换读取csv文件
  3. 实验0:了解和熟悉操作系统
  4. 路由器的修改特权密码、还原出厂设置、备份配置文件和升级操作系统实际操作...
  5. elastic学习笔记
  6. [译]关于NODE_ENV,哪些你应该了解
  7. 小书匠编辑器使用手册
  8. Atitit 同步获取阻塞式命令行输出 费阻塞式样命令行执行完毕后退出了,可以直接获取其输出 InputStream is = new StreamGobbler(session.getStd
  9. 艾永亮:这家酒店如何让你毫不犹豫点上五星好评?
  10. 执行董事和非执行董事的区别
  11. PIXEL-LEVEL SELF-PACED LEARNING FOR SUPER-RESOLUTION
  12. Bitly:构建月处理60亿点击的分布式系统(转载)
  13. BERT代码的解读1---数据处理部分
  14. 资产管理可视化系统-RFID固定资产管理追踪方案-RFID资产管理解决方案-新导智能
  15. Python GraphQL
  16. 移动工具 证件照的设置
  17. c1灯光语言,c1科目三路考灯光口诀
  18. ubuntu系统下mysql数据库的备份与恢复
  19. Leetcode 584 寻找用户推荐人(SQL)
  20. 冷读术:瞬间抓住人心和操控人心的沟通技巧

热门文章

  1. Mysql分库分表--sharding-jdbc
  2. 15.23数据库(23):MySQL事务
  3. sysbench mysql_通过sysbench工具实现MySQL数据库的性能测试
  4. oracle授权时“with admin option”与“with grant option”的区别
  5. readv、io_uring、liburing and command cat
  6. SharedSDk相关的集成。第三方登陆及分享
  7. JVM扩展之JDK9中有关类加载器的变动
  8. 大模型训练技巧|单卡多卡|训练性能评测
  9. k8s中创建pv和pvc
  10. 尤达宝宝(baby yoda)