[计蒜客][贪心]蘑菇森林 原创
题目来源 计蒜客程序设计竞赛基础课(蓝桥杯省赛)
算法标签 贪心
题目描述

思路
如果我的命中率比路人怪物甲的闪避值高,我就能A中它。
我可以检查出多少个怪物我可以A中,并把这些怪物的血量存储起来排序
血最少的最优先A,这样就可以统计极限操作可以A多少
AC代码
#include<iostream>
#include<algorithm>
using namespace std;
const int N=5e3+100;
int a[N];
int main()
{
int n,m,h,b;
cin>>n>>m>>h>>b;
int keyN=h+b;//装备加基础命中
int cnt=0;
for(int i=0;i<n;i++)
{
int voN,lvN;//闪避值,血量
cin>>voN>>lvN;
if(keyN>=voN)a[cnt++]=lvN;//如果大于就存储
}
sort(a,a+cnt);
int res=0;
for(int i=0;i<cnt;i++)
if(m>=a[i])m-=a[i],res++;//如果能量值还能A下一个就继续A
cout<<res;
return 0;
}

浙公网安备 33010602011771号