洛谷P1230 智力大冲浪
题目描述
小伟报名参加中央电视台的智力大冲浪节目。本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每个参赛者 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 智力大冲浪相关推荐
- 洛谷 P1230 智力大冲浪
我的第一篇题解(辣鸡题解)洛谷 P1230 智力大冲浪 题目描述 小伟报名参加中央电视台的智力大冲浪节目.本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每个参赛者m元.先不要太高兴!因为 ...
- 洛谷P1230 智力大冲浪(贪心)
P1230 智力大冲浪 题解:准着一个贪心思想,在尽可能短的时间内,做价值尽可能多的题. 因此,我们可以按照价值从大到小排个序,然后对于每一道题看在时间限制内可以做哪几道题.时间复杂度Θ(N2)\Th ...
- 做题记录 洛谷P1230 智力大冲浪
题目描述 小伟报名参加中央电视台的智力大冲浪节目.本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每个参赛者m元.先不要太高兴!因为这些钱还不一定都是你的?!接下来主持人宣布了比赛规则: ...
- 洛谷p1230 智力大冲浪 (贪心问题)
题目描述 小伟报名参加中央电视台的智力大冲浪节目.本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每个参赛者m元.先不要太高兴!因为这些钱还不一定都是你的?!接下来主持人宣布了比赛规则: ...
- P1230 智力大冲浪
P1230 智力大冲浪 题目描述 小伟报名参加中央电视台的智力大冲浪节目.本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每个参赛者m元.先不要太高兴!因为这些钱还不一定都是你的?!接下来 ...
- P1230 智力大冲浪 贪心
题目描述 小伟报名参加中央电视台的智力大冲浪节目.本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每个参赛者m元.先不要太高兴!因为这些钱还不一定都是你的?!接下来主持人宣布了比赛规则: ...
- [Luogu P1230]智力大冲浪
题目链接 这道题,贪就对了. 先按照价值排序,从大到小.当前考虑的的就先放到尽可能晚的时间点,为其他的创造机会,如果这一个的所有可用时间段都被占据,就只能扣钱了. #include<fstrea ...
- 【题解】p1230 智力大冲浪
总结: 1.因为完成游戏的时间都是1分钟,所以不用考虑时间不同而带来的影响,这就是不用贪心的原因,所以可以用贪心 2.从每个游戏的最晚时间向前循环,是为了尽可能让后面游戏完成. #include< ...
- luogu P1230 智力大冲浪
添加链接描述 #include<bits/stdc++.h> using namespace std; const int N=510; struct node {int time,mon ...
最新文章
- Pyqt5_QWidget
- python读取nc文件并转换成csv_python3使用类型转换读取csv文件
- 实验0:了解和熟悉操作系统
- 路由器的修改特权密码、还原出厂设置、备份配置文件和升级操作系统实际操作...
- elastic学习笔记
- [译]关于NODE_ENV,哪些你应该了解
- 小书匠编辑器使用手册
- Atitit 同步获取阻塞式命令行输出 费阻塞式样命令行执行完毕后退出了,可以直接获取其输出 	InputStream is = new StreamGobbler(session.getStd
- 艾永亮:这家酒店如何让你毫不犹豫点上五星好评?
- 执行董事和非执行董事的区别
- PIXEL-LEVEL SELF-PACED LEARNING FOR SUPER-RESOLUTION
- Bitly:构建月处理60亿点击的分布式系统(转载)
- BERT代码的解读1---数据处理部分
- 资产管理可视化系统-RFID固定资产管理追踪方案-RFID资产管理解决方案-新导智能
- Python GraphQL
- 移动工具 证件照的设置
- c1灯光语言,c1科目三路考灯光口诀
- ubuntu系统下mysql数据库的备份与恢复
- Leetcode 584 寻找用户推荐人(SQL)
- 冷读术:瞬间抓住人心和操控人心的沟通技巧
热门文章
- Mysql分库分表--sharding-jdbc
- 15.23数据库(23):MySQL事务
- sysbench mysql_通过sysbench工具实现MySQL数据库的性能测试
- oracle授权时“with admin option”与“with grant option”的区别
- readv、io_uring、liburing and command cat
- SharedSDk相关的集成。第三方登陆及分享
- JVM扩展之JDK9中有关类加载器的变动
- 大模型训练技巧|单卡多卡|训练性能评测
- k8s中创建pv和pvc
- 尤达宝宝(baby yoda)