洛谷 P1230 智力大冲浪
我的第一篇题解(辣鸡题解)洛谷 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行。表示小伟能赢取最多的钱。
输入输出样例
输入样例1
10000
7
4 2 4 3 1 4 6
70 60 50 40 30 20 10
输出样例1
9950
下面来看思路啦:
诶哟,刚看到这题时,还觉得挺简单的:哇,不就是个贪心加排序吗?结果,做错啦TAT!
本题思路:
因为要让小伟获得的奖金最多,就应该从扣款数多的小游戏开始玩儿~所以呢,a表示游戏规定完成的期限,b表示不能在规定期限前完成的扣款数,c表示这个小游戏有没有玩过。我们可以把b数组从大到小排一个序,然后枚举b[i],能完成这个游戏就完成这个游戏,这酱紫就可以就可以让小伟扣掉的奖金最少啦~
下面根据我的受到的教训,总结一下这题需要注意的:
一、可以使用结构体(这是最好),可惜懒惰加奇葩的我就是不愿意,非要用数组(还要手写快排QAQ)
二、(dalao可以略过,细心的童鞋也可以略过)纯属小粗心,输入的时候一定要分两个for循环来做啊,不要像我一样,一开始只用了一个循环TAT,找了10多分钟,才发现错误555~
下面贴上本蒟蒻的代码:
无注释版:
#include<iostream> #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> using namespace std; int ans,n; int a[1001],b[1001]; bool flag[1001]; void quicksort(int l,int r) {int i,j,m;i=l;j=r;m=b[(i+j)/2];do{while (b[i]>m) i++;while (b[j]<m) j--; if (i<=j){swap(a[i],a[j]);swap(b[i],b[j]);i++;j--;}}while (i<=j);if (i<r) quicksort(i,r);if (j>l) quicksort(l,j); } int main() {cin>>ans>>n;for (int i=1;i<=n;i++)cin>>a[i];for (int j=1;j<=n;j++)cin>>b[j];quicksort(1,n);for (int i=1;i<=n;i++){for (int j=a[i];j>=1;j--){if (flag[j]==0){flag[j]=1;b[i]=0;break;}}}for (int i=1;i<=n;i++)ans=ans-b[i];cout<<ans<<endl;return 0; }
#include<iostream> #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> using namespace std; int ans,n; int a[1001],b[1001]; bool flag[1001];//判断该时段有没有玩过游戏 void quicksort(int l,int r)//快速排序 {int i,j,m;i=l;j=r;m=b[(i+j)/2];do{while (b[i]>m) i++;while (b[j]<m) j--; if (i<=j){swap(a[i],a[j]);swap(b[i],b[j]);i++;j--;}}while (i<=j);if (i<r) quicksort(i,r);if (j>l) quicksort(l,j); } int main() {cin>>ans>>n;for (int i=1;i<=n;i++)cin>>a[i];for (int j=1;j<=n;j++)cin>>b[j];quicksort(1,n);//从大到小排序for (int i=1;i<=n;i++)//枚举b[i]{for (int j=a[i];j>=1;j--){if (flag[j]==0)//如果没有玩过{flag[j]=1;b[i]=0;break;}}}for (int i=1;i<=n;i++)ans=ans-b[i];//计算奖金cout<<ans<<endl;return 0; }
希望各位能在里面学到些东西~(然而是不可能的QWQ)
作者:暄妍
我的博客:http://www.cnblogs.com/zbyrainbow/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
转载于:https://www.cnblogs.com/zbyrainbow/p/8457772.html
洛谷 P1230 智力大冲浪相关推荐
- 洛谷P1230 智力大冲浪(贪心)
P1230 智力大冲浪 题解:准着一个贪心思想,在尽可能短的时间内,做价值尽可能多的题. 因此,我们可以按照价值从大到小排个序,然后对于每一道题看在时间限制内可以做哪几道题.时间复杂度Θ(N2)\Th ...
- 洛谷P1230 智力大冲浪
题目描述 小伟报名参加中央电视台的智力大冲浪节目.本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每个参赛者 m 元.先不要太高兴,因为这些钱还不一定都是你的.接下来主持人宣布了比赛规则: ...
- 做题记录 洛谷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 ...
最新文章
- oracle统计每日归档大小,Oracle查询最近几天每小时归档日志产生数量的脚本写法...
- UIView动画效果
- 160 - 14 bjanes.1
- [react] React必须使用JSX吗?
- 动态规划——变形的杨辉三角形
- aspnet登录界面代码_SAP系统基础操作培训1-环境登录介绍
- div常用效果方法-transform
- sqlserver数据导入hdfs和hive的解决方案
- 计算机磁盘修复工具,电脑自带chkdsk磁盘修复工具使用教程
- 算法设计与分析基础(第3版)
- 使用JMeter进行简单的app接口测试
- java模拟器.apk_java游戏模拟器安卓版下载-java模拟器apk下载 v2.2.0 安卓版-IT猫扑网...
- 用什么系统搭建nas服务器,自己家里搭建NAS服务器有什么好方案
- 如果能站在巨人的肩膀上
- 详解三极管NPN与PNP区别
- vue获取上级路由地址
- html5 canvas消除锯齿,HTML5 Canvas 如何取消反锯齿绘图
- 阿里云Linux服务器部署Mysql,JDK以及Tomcat教程
- List、Collections
- [转] 介绍深度学习和长期记忆网络