【题目描述】

小伟报名参加中央电视台的智力大冲浪节目。本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每个参赛者m元。先不要太高兴!因为这些钱还不一定都是你的。接下来主持人宣布了比赛规则: 首先,比赛时间分为n个时段(n≤500),它又给出了很多小游戏,每个小游戏都必须在规定期限ti前完成(1≤ti≤n)。如果一个游戏没能在规定期限前完成,则要从奖励费m元中扣去一部分钱wi,wi为自然数,不同的游戏扣去的钱是不一样的。当然,每个游戏本身都很简单,保证每个参赛者都能在一个时段内完成,而且都必须从整时段开始。主持人只是想考考每个参赛者如何安排组织自己做游戏的顺序。作为参赛者,小伟很想赢得冠军,当然更想赢取最多的钱! 注意:比赛绝对不会让参赛者赔钱!

【输入】

输入共4行。

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

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

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

【输出】

仅1行。表示小伟能赢取最多的钱。

【输入样例】

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

【输出样例】

9950

【提示】

数据范围及提示:

n≤500,1≤ti≤n

【题解】:

关键是题目的理解,特别是时段这一块。

m元钱做n个任务,每一个任务要花一整个时段来做,而且每个任务都有自己的截止时间(开始到第ti个时间),若是在截止前没完成则在m元中扣掉相应的wi元。为了得到更多钱,意味着需扣最少的钱。所以逆向思考将扣钱当作首要考虑的问题,再来考虑截止时间。

考虑用贪心,钱数越大越重要,截止时间越大,完成它的时间就越长。定义一个v数组标记是否对应时段i被占用,每一个物品都从截止时间往前搜索直到有一天没有用过。越靠后的时间越好,尽量不占用前面的时间。若是最终没有符合条件的时间i,则需扣对应的wi。
将w从大到小排序,优先处理罚款多的,将任务尽量安排在期限之前,并且靠后,如果找不到,则扣钱。

代码如下:

#include<bits/stdc++.h>
using namespace std;struct stu{int t,w;
}a[501];bool cmp(stu x,stu y){return x.w>y.w;
}bool v[501];//用来标记对应时段被使用。 int main(){int m,n;cin>>m>>n;for(int i=1;i<=n;++i){scanf("%d",&a[i].t);}for(int i=1;i<=n;++i){scanf("%d",&a[i].w);}sort(a+1,a+n+1,cmp);for(int i=1;i<=n;++i){int curt = a[i].t;while(curt>0&&v[curt]){curt--;//当前时段被占用了,往后查询 }if(curt>0) v[curt]=true;//当前时段被占用完成任务ielse m -= a[i].w;//当前任务i没有合适时段可以用来完成,扣除对应款项 } cout<<m;return 0;
}

1426:【例题5】智力大冲浪相关推荐

  1. 1426:智力大冲浪

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

  2. 贪心算法(5.智力大冲浪+解题思路)

    1.带期限和罚款的单位时间任务调度                                                         智力大冲浪 题目描述 小伟报名参加中央电视台的智力大 ...

  3. 【C++】「一本通 1.1 例 5」智力大冲浪

    「一本通 1.1 例 5」智力大冲浪 [来源] [题目描述] [输入格式] [输出格式] [输入样例] [输出样例] [数据范围] [解析] [代码] [来源] 一本通题库-1426 LibreOJ- ...

  4. C语言(CED)智力大冲浪——贪心算法第一题

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

  5. P1457智力大冲浪

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

  6. 智力大冲浪 【贪心】

    题目链接:https://loj.ac/problem/10004 题目描述 小伟报名参加中央电视台的智力大冲浪节目.本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每个参赛者 m 元.先 ...

  7. K11794 智力大冲浪

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

  8. 智力大冲浪 解题报告

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

  9. CQNKOJ P5215 智力大冲浪(贪心算法)题解

    前言 这题 不 有点麻烦,可能有更好的解法,笔者的方法通俗易懂,希望大家都能A掉这道题 先看题目 时间限制 : 10000 MS 空间限制 : 65536 KB 问题描述 小伟报名参加中央电视台的智力 ...

最新文章

  1. 技术 | 入门机器学习必须知道的6件事,你可未必都了然于心了
  2. seata-golang 接入指南
  3. stateflow错误:Error in port widths or dimensions.
  4. 用锤子发射导弹,程序员的世界你不懂
  5. 去掉xcode中警告的一些经验
  6. 如何搭建socks5和ss节点_redis cluster搭建实践(非常详细,值得收藏)
  7. python contains类似函数_五步教会你用python爬虫神器PyQuery!(内含详细步骤和代码)...
  8. 【CF#-931A】 Friends Meeting(思维)
  9. PostgreSQL 简单的查询
  10. docker存储--理解镜像文件系统aufs/device mapper、主机存储共享、容器间存储共享、分布式存储Flocker
  11. Vendor Prefix:为什么需要浏览器引擎前缀
  12. 国内访问 Atom 源很慢 解决方案
  13. 使用minikube在windows构建kubernetes群集
  14. Qt 二维码文件传输工具
  15. 2021-06-18App Tamer for Mac(CPU优化电池管理工具)
  16. bigworld源码分析(1)—— 研究bigworld的意义和目标
  17. Python语法--Mooc七月
  18. 使用 OpenCV 在 Python 中检测图像中的形状
  19. 历史笔记记录之 MySQL DBA 面试题目 答疑记
  20. 用Xposed框架抓取微信朋友圈数据

热门文章

  1. 继华为仓颉后,再现4款国产编程语言,形式多样,有一款0代码
  2. 微信小程序音乐播放功能代码
  3. 2021年潮阳一中的高考成绩查询,2020潮阳区普通高中录取分数线
  4. C语言例题——输出1000以内的所有完数
  5. 【前端面试题】21道有关移动端的面试题(附答案)
  6. 关于Invalid bound statement和Error creating bean with name 'xxx'错误问题全收录
  7. uCOS-II消息邮箱的相关操作函数
  8. linux下部署thinkphp5项目
  9. iOS下vue项目 微信签名出错
  10. 警惕运动损伤 应该这样做