「一本通 1.1 例 5」智力大冲浪

  • 【来源】
  • 【题目描述】
  • 【输入格式】
  • 【输出格式】
  • 【输入样例】
  • 【输出样例】
  • 【数据范围】
  • 【解析】
  • 【代码】

【来源】

一本通题库-1426
LibreOJ-10004
vjudge

【题目描述】

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

【输入格式】

输入共444行。

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

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

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

【输出格式】

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

【输入样例】

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

【输出样例】

9950

【数据范围】

n≤500,1≤ti≤nn≤500,1≤t_i≤nn≤500,1≤ti​≤n

【解析】

贪心。

题意简单地说就是给你m元钱让你做n个任务,每一个任务要花一整天做,而且每个任务都有自己的截止日期,若是在截止日期之前没做完会扣掉相应的钱。

目的是为了得到更多的钱,就需要扣最少的钱,所以要将扣钱当作首要来考虑,再去考虑截止日期。按扣钱数由大到小,截止日期由大到小排序。因为钱数越大越重要,截止日期越靠后,完成它的时间就越长。定义一个vis数组来标记是否用过那天,每一个物品都从截止日期往前搜索直到有一天没有用过。越晚做越好,因为我不仅能做,还不占用前面的时间。若是没有符合条件,则扣钱。

【代码】

#pragma GCC optimize(3,"Ofast","inline")
#pragma G++ optimize(3,"Ofast","inline")#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>#define RI                 register int
#define re(i,a,b)          for(RI i=a; i<=b; i++)
#define ms(i,a)            memset(a,i,sizeof(a))
#define MAX(a,b)           (((a)>(b)) ? (a):(b))
#define MIN(a,b)           (((a)<(b)) ? (a):(b))using namespace std;typedef long long LL;int const N=505;struct Node {int t,w;bool operator < (const Node &rhs) const {return w>rhs.w;}
} a[N];int m,n;
int vis[N];int main() {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].w);sort(a+1,a+n+1);int sum=0;for(int i=1; i<=n; i++) {int flag=1;for(int j=a[i].t; j>=1; j--) {if(!vis[j]) {flag=0;vis[j]=1;break;}}if(flag) {for(int j=n; j>=1; j--) {if(!vis[j]) {vis[j]=1;break;}}sum+=a[i].w;}}printf("%d\n",m-sum);return 0;
}

【C++】「一本通 1.1 例 5」智力大冲浪相关推荐

  1. 【C++】「一本通 1.1 例 4」加工生产调度

    「一本通 1.1 例 4」加工生产调度 [来源] [题目描述] [输入格式] [输出格式] [输入样例] [输出样例] [数据范围] [解析] [代码] [来源] 一本通题库-1425 LibreOJ ...

  2. LibreOJ10082. 「一本通 3.3 例 1」Word Rings【二分+SPFA】

    10082. 「一本通 3.3 例 1」Word Rings [题目描述] 传送门 [题解] 将一个字符串看成一条边,字符两端的字符看成节点,长度看成权值.二分枚举答案,最后SPFA刷正环,因为只要有 ...

  3. 【C++】「一本通 1.1 例 2」种树

    「一本通 1.1 例 2」种树 [来源] [题目描述] [输入格式] [输出格式] [输入样例] [输出样例] [解析] [代码] [来源] 一本通题库-1423 LibreOJ-10001 vjud ...

  4. #10001. 「一本通 1.1 例 2」种树

    #10001. 「一本通 1.1 例 2」种树 满足n个区间种树的要求,求最少种多少棵数 思路 按照区间的尾巴来排序,因为如果区间有重叠的种在第一个区间的尾巴可以使得种树更少,所有每次始从尾巴开始种树 ...

  5. Loj 10115 「一本通 4.1 例 3」校门外的树 (树状数组)

    题目链接:https://loj.ac/problem/10115 题目描述 原题来自:Vijos P1448 校门外有很多树,学校决定在某个时刻在某一段种上一种树,保证任一时刻不会出现两段相同种类的 ...

  6. #10003. 「一本通 1.1 例 4」加工生产调度(贪心)

    加工生产调度 题目描述 某工厂收到了n个产品的订单,这n个产品分别在A.B两个车间加工,并且必须先在A车间加工后才可以到B车间加工. 某个产品i在A.B两车间加工的时间分别为Ai.Bi.询问怎样安排这 ...

  7. 「一本通 4.1 例 3」校门外的树 (loj10115)

    题目描述 原题来自:Vijos P1448 校门外有很多树,学校决定在某个时刻在某一段种上一种树,保证任一时刻不会出现两段相同种类的树,现有两种操作: K=1,读入 l,r表示在 l 到 r 之间种上 ...

  8. loj10157. 「一本通 5.2 例 5」皇宫看守

    思路: 例四是覆盖全部边,dp两个状态,例五是覆盖全部点,dp三个状态. #include<cstdio> #include<iostream> #include<cst ...

  9. #10019. 「一本通 1.3 例 2」生日蛋糕

    冥想盆 感性理解深搜剪枝(看完这个再看下面的文章) 理解本题的思路 [代码实现1:最慢最好理解(自己打的):100多ms] [代码实现2:次慢:30多ms] [代码实现3:最快:10多ms] 最后放上 ...

最新文章

  1. 第三代测序单分子荧光测序之Pacbio 测序原理
  2. MATLAB 图像函数(第三章) 图像基本处理
  3. MySQL SELECT:数据表查询语句
  4. 使用maven插件构建docker镜像
  5. sp_getapplock_sp_getapplock和sp_releaseapplock存储过程概述
  6. AMESim找图形平衡点的方法
  7. WCF分布式开发常见错误解决(1):添加服务引用出错
  8. 【逆向】Android逆向破解某APP
  9. 【个人积累】轨道根数六要素中第4、5项的理解与STK仿真演示
  10. 微分几何笔记(8) —— 切向量,切空间
  11. 微信小程序 设置微软雅黑字体
  12. Excel如何按照颜色排序
  13. python第一行输入整数n、然后输入n行 每行三个字符串_B站2019秋招编程题思路解析[题目要素过多]...
  14. 转:移动建站工具(一):分秒钟将Web网站移动化
  15. 历史名人 明朝成化仙游抗倭首领总捕头——魏升
  16. MGRE环境下的OSPF (实验超详解)
  17. excel表格计算年龄_在Excel中计算年龄
  18. javascript常用工具类的封装
  19. 概率论:乘法定理、全概率公式以及贝叶斯定理
  20. [转贴]八岁女童墓志铭:我来过,我很乖~~~~~ (是个人就流泪)

热门文章

  1. 身份信息在省际间传递可能存在漏洞的思考
  2. 国家高新技术企业优惠政策重点及国家高新申报条件介绍,补贴20-50万
  3. Log4cplus使用详解
  4. oracle+srvctl+crsctl,【Oracle Database】Oracle RAC(七):crsctl srvctl
  5. 温湿度NB-IOT上云问题
  6. sql server with temp as用法
  7. android付款功能,Qpay,利用 Android 新特性,把所有付款方式放在一起 | App+1
  8. PHP带头大哥的兵器谱!
  9. java opencv 旋转90度_OpenCV3 Java图像的旋转(Imgproc.getRotationMatrix2D)
  10. python绘制樱花、玫瑰和圣诞树