我的第一篇题解(辣鸡题解)洛谷 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. vue在created调用点击方法_vue中created、mounted等方法整理
  2. mysql Table 'plugin' already exists
  3. 练习题|网络编程-socket开发
  4. glassfish发布应用_Arquillian 1.0.0.Final正式发布! 准备使用GlassFish和WebLogic! 所有虫子死亡!...
  5. JavaFX中基于表达式的PathTransitions
  6. python中交换a和b的值_交换A和B之间的元素以获得和相等
  7. 构建Docker直觉
  8. AD账户频繁被锁定-开启日志审核策略
  9. git submodule的工作原理
  10. linux下配置防火墙
  11. 如何搭建企业数据平台
  12. 玩转飞思卡尔在线调试工具FreeMaster
  13. Loadrunner12实现手机APP压力测试
  14. python实现sm3算法
  15. 教务管理系统登陆显示不出验证码图片求哥帮助一下
  16. String类的getBytes()方法
  17. 百度BAE部署微信开发环境
  18. Linux 重置root密码
  19. 使用JS取得焦点(focus)元素
  20. 如何查看Eclipse是32位还是64位?

热门文章

  1. 坑爹的微博开放平台之图片上传出现:图片上传失败,请重新上传。 目前仅支持小于2M的PNG、JPG、GIF 图片,
  2. 2021年潮阳一中的高考成绩查询,2020潮阳区普通高中录取分数线
  3. Oracle 快速入门 触发器游标
  4. 客户管理信息系统html,一个简易的客户管理信息系统
  5. 三种蓝牙架构实现方案(蓝牙协议栈方案)
  6. Parameter ‘xxx’ implicitly has an ‘any’ type的解决
  7. safari地址栏无法使用百度搜索
  8. 获取地址栏参数的几种办法
  9. 程序员实现梦想的三组词汇
  10. 什么是 SIGSEGV 以及导致报错的原因