正经题解 | ZXC的闯关计划
2024-05-06 16:22:36
发布于:浙江
103阅读
0回复
0点赞
题目分析
根据题目分析,容易想到应优先安排容易挑战的关卡进行挑战,让自己的血量尽可能保证高,利用好每一轮结束后的百分比回血,这样才能让自己的血量更加高,更容易通过关卡。
因为可以任选通过顺序,所以先排序,优先挑战扣血少的关卡,中间如果无法满足关卡要求则挑战失败;如果可以,最后输出血量即可。
AC代码
#include<iostream>
#include<algorithm> 
using namespace std;
const int N = 1010;
long long n,m,a[N];
int main(){
	cin >> n >> m;
	for(int i = 1;i <= n;i++)	cin >> a[i];
	sort(a+1, a+1+n);
	for(int i = 1;i <= n;i++){
		if(m > a[i]){
			m -= a[i];
			m += m / 50;
		}else{
			cout << -1;
			return 0;
		}
	}
	cout << m;
	return 0;
}
复杂度分析
时间复杂度瓶颈在排序,故
全部评论 1
- 能不能DFS做出来 - 2024-05-08 来自 浙江 0





有帮助,赞一个