CodeForces.1822A.精神食粮[简单][条件判断]

题目描述:


题目解读:

李华想边吃饭边看B站,还想在要求时间内,观看最有价值的视频。

而且切换视频,中间还要花费1单位的时间

输入:给定视频数量最大观看时间。每个视频的时长价值

输出:符合时间要求的最有价值的视频的序号


解题思路:视频数量和最大观看时间用变量存储即可。

然后要两次for循环,将 视频时长价值,存入两个数组。

解题用for循环遍历,首先考察是否符合时间要求,符合则进一步考察是否价值最大

关于切换视频耗费的时间,只需要在考察时间要求时一并算入即可。即time[i]+i才是看视频i所需要的时间成本。


代码实现:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#define MAX 10000
void Solve() {
	int n,limit;
	scanf("%d%d",&n,&limit);
	int time[MAX];
	int value[MAX];
	int i = 0;
	int answer = -1; //默认为-1
	
	for (i = 0; i < n; i++) { //存储时间
		scanf("%d", &time[i]);
	}
	for (i = 0; i < n; i++) { //存储价值
		scanf("%d", &value[i]);
	}
	
	for (i = 0; i < n; i++) {
		if (time[i] + i <= limit) { //考虑时间问题
			if (answer == -1 || (value[i] > value[answer - 1])) //考虑价值
				answer = i + 1;
		}
	}
	printf("%d\n", answer);
	return;
}

int main() {
	int t;
	scanf("%d", &t);
	while (t--) Solve();
	return 0;
}

遇到的错误:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值