洛谷p1230 智力大冲浪 (贪心问题)
题目描述
小伟报名参加中央电视台的智力大冲浪节目。本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每个参赛者m元。先不要太高兴!因为这些钱还不一定都是你的?!接下来主持人宣布了比赛规则:
首先,比赛时间分为n个时段(n≤500),它又给出了很多小游戏,每个小游戏都必须在规定期限ti前完成(1≤ti≤n)。如果一个游戏没能在规定期限前完成,则要从奖励费m元中扣去一部分钱wi,wi为自然数,不同的游戏扣去的钱是不一样的。当然,每个游戏本身都很简单,保证每个参赛者都能在一个时段内完成,而且都必须从整时段开始。主持人只是想考考每个参赛者如何安排组织自己做游戏的顺序。作为参赛者,小伟很想赢得冠军,当然更想赢取最多的钱!注意:比赛绝对不会让参赛者赔钱!
输入格式
输入文件riddle.in,共4行。
第1行为m,表示一开始奖励给每位参赛者的钱;
第2行为n,表示有n个小游戏;
第3行有n个数,分别表示游戏1到n的规定完成期限;
第4行有n个数,分别表示游戏1到n不能在规定期限前完成的扣款数。
输出格式
输出文件riddle.out,仅1行。表示小伟能赢取最多的钱。
输入输出样例
输入
10000 7 4 2 4 3 1 4 6 70 60 50 40 30 20 10输出
9950
分析:
这道题我们每完不成一个任务就要扣钱,而想让自己最后的钱最多,就是扣的钱最少,而我们可以贪心的让能扣钱最多的排在最前面考虑,因为它的影响最大。
这时候用sort就行
sort(a+1,a+n+1,cmp)
为什么要用cmp?因为包含了结构体
struct ben
{int t,val;
}a[505];
注意此时cmp需要手写
int cmp(const ben &a,const ben &b)
{return a.val>b.val;
}
完整代码:
#include<cstdio>
#include<algorithm>
using namespace std;
struct ben
{int t,val;
}a[505];
int vis[505];
int cmp(const ben &a,const ben &b)
{return a.val>b.val;
}
int main()
{int m,n;scanf("%d%d",&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].val);} sort(a+1,a+n+1,cmp);int ans=0,t=0;for(int i=1;i<=n;i++){int tag=0;for(int j=a[i].t;j;j--){if(vis[j]==0){vis[j]=1;tag=1;break;}}if(tag==0){for(int j=n;j;j--){if(vis[j]==0){vis[j]=1;break;}}ans+=a[i].val;}}printf("%d\n",m-ans);return 0;
}
yjf
洛谷p1230 智力大冲浪 (贪心问题)相关推荐
- 洛谷P1230 智力大冲浪(贪心)
P1230 智力大冲浪 题解:准着一个贪心思想,在尽可能短的时间内,做价值尽可能多的题. 因此,我们可以按照价值从大到小排个序,然后对于每一道题看在时间限制内可以做哪几道题.时间复杂度Θ(N2)\Th ...
- 洛谷 P1230 智力大冲浪
我的第一篇题解(辣鸡题解)洛谷 P1230 智力大冲浪 题目描述 小伟报名参加中央电视台的智力大冲浪节目.本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每个参赛者m元.先不要太高兴!因为 ...
- 洛谷P1230 智力大冲浪
题目描述 小伟报名参加中央电视台的智力大冲浪节目.本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每个参赛者 m 元.先不要太高兴,因为这些钱还不一定都是你的.接下来主持人宣布了比赛规则: ...
- 做题记录 洛谷P1230 智力大冲浪
题目描述 小伟报名参加中央电视台的智力大冲浪节目.本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每个参赛者m元.先不要太高兴!因为这些钱还不一定都是你的?!接下来主持人宣布了比赛规则: ...
- P1230 智力大冲浪 贪心
题目描述 小伟报名参加中央电视台的智力大冲浪节目.本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每个参赛者m元.先不要太高兴!因为这些钱还不一定都是你的?!接下来主持人宣布了比赛规则: ...
- P1230 智力大冲浪
P1230 智力大冲浪 题目描述 小伟报名参加中央电视台的智力大冲浪节目.本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每个参赛者m元.先不要太高兴!因为这些钱还不一定都是你的?!接下来 ...
- C语言(CED)智力大冲浪——贪心算法第一题
一.题目大意 小伟报名参加中央电视台的智力大冲浪节目,本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每个参赛者m元.先不要太高兴!因为这些钱还不一定都是你的!接下来主持人宣布了比赛规则: ...
- 【题解】p1230 智力大冲浪
总结: 1.因为完成游戏的时间都是1分钟,所以不用考虑时间不同而带来的影响,这就是不用贪心的原因,所以可以用贪心 2.从每个游戏的最晚时间向前循环,是为了尽可能让后面游戏完成. #include< ...
- [Luogu P1230]智力大冲浪
题目链接 这道题,贪就对了. 先按照价值排序,从大到小.当前考虑的的就先放到尽可能晚的时间点,为其他的创造机会,如果这一个的所有可用时间段都被占据,就只能扣钱了. #include<fstrea ...
最新文章
- C# VC HTTP POST GET(转)
- 4j是合法python数字类型_python数字类型
- Js选择框脚本 移动操作select 标签中的 option 项的操作事项
- 请解释为什么集合类没有实现Cloneable和Serializable接口?
- oracle insert 数组,oracle 数组 批量insert
- c# list 容量_C#中数组、ArrayList和List三者的区别 转
- DFS--POJ 1190 生日蛋糕
- 鸟哥的linux私房菜简答题答案,《鸟哥的Linux私房菜》7章 Linux文件与目录管理 习题答案...
- java swing 列表框_如何在Swing中使用列表框?
- Linux开机启动过程(6):页表的初始化、避开保留的内存、地址随机化
- 【底层原理】x86-64体系下一个奇怪问题的定位
- C++ 10 进制 转 16进制
- IE兼容性问题解决方案
- Laravel快速创建统计图表
- Admin5推荐软文推广采用“链接标准化”
- [转]VC知识库文章 - 在MFC中用正则表达式对窗体进行有效性验证
- 如何在Windows 10上不用鼠标使用文件资源管理器
- ps铅笔素描效果教程
- ant-vue中的a-icon使用方法
- LoadBalancerCacheManager not available, returning delegate without caching.