洛谷 P1230 智力大冲浪

题目:智力大冲浪


题意:

刚开始没看懂……

摘自~Lanly~

①. 4 70
②. 2 60
③. 4 50
④. 3 40
⑤. 1 30
⑥. 4 20
⑦. 6 10
其中第一列为编号,第二列为规定期限ti,第三列为未完成的赔钱。

显然,对于第一个时段,我们最优解是完成第五个游戏,这样赔钱数为0,已完成游戏⑤。
对于第二个时间段,我们最优解是完成第二个游戏,这样赔钱数还是为0,已完成游戏⑤②。
对于第三个时间段同理已完成⑤②④。
对于第四个时间段,游戏①我们肯定是要选的,因为它赔钱数最多,剩下的③⑥加起来会赔70元,但在这里,我们注意到,我们已完成的游戏里面⑤的赔钱数是30,但③的赔钱数是50,如果我们完成③放弃⑤,赔钱数只是50比之前优,而这个③我们就可以放在第一个时间段去完成
剩下的⑥所赔的钱都比已完成的少,就也放弃了。
第五个时间段,我们就只能完成⑦了。


思路:

贪心。

根据扣得钱从大到小排序,在选择时优先考虑靠前的。


代码:

#include<bits/stdc++.h>
using namespace std;

#define maxn 500

struct gme{
	int t,x;
	bool operator < (const gme& oth) const {
		return x>oth.x||(x==oth.x&&t<oth.t);
	}
};

int mny,n;
gme a[maxn+5]={0};
bool f[maxn+5]={0};

void readin(){
	scanf("%d%d",&mny,&n);
	for(int i=1;i<=n;i++){
		scanf("%d",&a[i].t);
	}
	for(int i=1;i<=n;i++){
		scanf("%d",&a[i].x);
	}
	sort(a+1,a+n+1);
}

int slv(){
	int ans=mny;
	for(int i=1;i<=n;i++){
		for(int j=a[i].t;j>=1;j--){
			if(!f[j]) {
				f[j]=1;
				goto End;
			}
		}
		ans-=a[i].x;
		End:;
	}
	return ans;
}

int main(){
	readin();
	sort(a+1,a+n+1);
	int ans=slv();
	printf("%d",ans);
	return 0;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录 习题篇 第一章 回溯 1.1马拦过河卒 1.2出栈序列统计 1.3算24点 1.4冗余依赖 1.5走迷宫 1.6 单向双轨道 1.7.组合的输出 1.8售货员的难题 1.9驾车旅游 1.10关路灯 第二章 递规与递推 2.1遍历问题 2.2产生数 2.3出栈序列统计 2.4计数器 2.5诸侯安置 2.6括号序列 2.7新汉诺塔 2.8排序集合 2.9青蛙过河 2.10电话号码 2.11编码 第三章 贪心 3.1排队接水 3.2智力冲浪 3.3取火柴游戏 3.4等待时间 3.5加工生产调度 3.6最大乘积 3.7种树 3.8餐巾 3.9马拉松接力赛 3.10线性存储问题 3.11扇区填数 第四章 分治 4.1取余运算 4.2地毯填补问题 4.3平面上的最接近点对 4.4求方程的根 4.5小车问题 4.6黑白棋子的移动 4.7麦森数(NOIP2003) 4.8旅行家的预算(NOIP1999) 4.9飞行计划 第五章 图 5.1医院设置 5.2工程规划 5.3服务器储存信息问题 5.4间谍网络(AGE) 5.5宫廷守卫 5.6K-联赛 5.7机器调度 5.8公路修建 5.9速度限制 第六章 树 6.1排序二叉树 6.2售票系统 6.3树的重量 6.4信号放大器 6.5“访问”术馆 6.6聚会的快乐 6.7重建道路 6.8有线电视网 6.9TWO 第七章 搜索 7.1最多因子数 7.2黑白棋游戏 7.3纵横填字游戏 7.4魔术数字游戏 7.5魔板 7.6三维扫描 7.7拼字游戏 7.8小木棍 7.9WORD 第八章 动态规划 8.1 BLAST 8.2 血缘关系 8.3 LIGNJA 8.4 书的复制 8.5 多米诺骨 8.6 平板涂色 8.7 三角形牧场 8.8 分组 8.9 工程规划 第九章 数学问题 9.1多项式展开系数 9.2 RAIR 9.3盒子与球 9.4取数游戏 9.5磁盘碎片整理 9.6欧几里德的游戏 9.7百事世界杯之旅 9.8倒酒 9.9班级聚会 第十章 杂题 10.1排序 10.2木棍加工 10.3三角形 10.4多边形面积 10.5网线切割 10.6最接近的分数 10.7切孔机 10.8 DOG 10.9 ERP 10.10魔鬼之城 10.11可见矩形 解析篇 第一章 回溯 1.1马拦过河卒 简析 1.2出栈序列统计 简析 1.3算24点 简析 1.4冗余依赖 简析 1.5走迷宫 详解 1.6 单向双轨道 简析 1.7.组合的输出 详解 1.8售货员的难题 简析 1.9驾车旅游 简析 1.10关路灯 详解 第二章 递规与递推 2.1遍历问题 详解 2.2产生数 详解 2.3出栈序列统计 详解 2.4计数器 详解 2.5诸侯安置 详解 2.6括号序列 简析 2.7新汉诺塔 简析 2.8排序集合 简析 2.9青蛙过河 简析 2.10电话号码 简析 2.11编码 简析 第三章 贪心 3.1排队接水 详解 3.2智力冲浪 详解 3.3取火柴游戏 详解 3.4等待时间 详解 3.5加工生产调度 详解 3.6最大乘积 详解 3.7种树 简析 3.8餐巾 简析 3.9马拉松接力赛 简析 3.10线性存储问题 简析 3.11扇区填数 简析 第四章 分治 4.1取余运算 详解 4.2地毯填补问题 详解 4.3平面上的最接近点对 详解 4.4求方程的根 简析 4.5小车问题 简析 4.6黑白棋子的移动 简析 4.7麦森数(NOIP2003) 简析 4.8旅行家的预算(NOIP1999) 简析 4.9飞行计划 简析 第五章 图 5.1医院设置 详解 5.2工程规划 详解 5.3服务器储存信息问题 详解 5.4间谍网络(AGE) 简析 5.5宫廷守卫 简析 5.6 K-联赛 简析 5.7机器调度 简析 5.8公路修建 简析

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值