我的第一篇题解(辣鸡题解)洛谷 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 智力大冲浪相关推荐

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

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

  2. 洛谷P1230 智力大冲浪

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

  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. oracle统计每日归档大小,Oracle查询最近几天每小时归档日志产生数量的脚本写法...
  2. UIView动画效果
  3. 160 - 14 bjanes.1
  4. [react] React必须使用JSX吗?
  5. 动态规划——变形的杨辉三角形
  6. aspnet登录界面代码_SAP系统基础操作培训1-环境登录介绍
  7. div常用效果方法-transform
  8. sqlserver数据导入hdfs和hive的解决方案
  9. 计算机磁盘修复工具,电脑自带chkdsk磁盘修复工具使用教程
  10. 算法设计与分析基础(第3版)
  11. 使用JMeter进行简单的app接口测试
  12. java模拟器.apk_java游戏模拟器安卓版下载-java模拟器apk下载 v2.2.0 安卓版-IT猫扑网...
  13. 用什么系统搭建nas服务器,自己家里搭建NAS服务器有什么好方案
  14. 如果能站在巨人的肩膀上
  15. 详解三极管NPN与PNP区别
  16. vue获取上级路由地址
  17. html5 canvas消除锯齿,HTML5 Canvas 如何取消反锯齿绘图
  18. 阿里云Linux服务器部署Mysql,JDK以及Tomcat教程
  19. List、Collections
  20. [转] 介绍深度学习和长期记忆网络

热门文章

  1. 2023年,新年伊始,万象更新,我的生活也将是全新的!
  2. Apache 的架构师们遵循的 30 条设计原则
  3. 《青春依然,再见理想——献给学弟学妹》华中科技大学大四学生的万言忏悔书
  4. 启航独家资料-考研英语长难句基本句型分析(2)
  5. 我与 CSDN 这几年,当技术遇到 CSDN,开启人生新篇章
  6. 【原创】简单的局域网内无线文件传输(1)
  7. 基于wemos的智能感应垃圾桶
  8. 圈叉棋游戏c语言编写,圈叉棋小游戏的简单实现代码
  9. 如何用Python爬取网易云音乐歌单
  10. 开源报表工具python_开源web报表工具哪家强?5款最优软件