正经题解 | ZXC的闯关计划
2024-05-06 16:22:36
发布于:浙江
70阅读
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
有帮助,赞一个