天天看点

信息学奥赛真题解析(打怪)

2020年全国信息学线上测试活动_普及组_T2   打怪

【题目描述】

哥斯拉打败基多拉后觉得意犹未尽,叫来了n个怪兽跟他操练。然而哥斯拉在战胜基多拉后只剩下了W个能量单位,所以他并不一定能打败所有怪兽。

哥斯拉有一个基础攻击力A,还有一个技能攻击力加成B(释放技能伤害为A+B)。

每一个怪兽都有两个属性,攻击力xi和生命值yi,如果哥斯拉的最大伤害比该怪兽的攻击力xi小,那么哥斯拉就不能战胜它。如果战胜它,则会消耗哥斯拉yi点能量值。

哥斯拉想知道他最多能打败多少个怪兽。

【输入格式】

第1行:两个整数n个怪兽,剩余能量w。

第2行:两个数基础攻击力A,技能攻击力加成B。

第3行-第3+n-1行:每行两个整数,第i个怪兽的攻击力xi,生命值yi。

【输出格式】

只有一个整数,表示哥斯拉能战胜的最大怪兽数量。

【样例输入】

10 30

20 130

120 3

150 2

110 7

180 1

50 8

200 0

140 3

120 2

150 0

1000 10

【样例输出】

7

【说明】

所有数据:n<=5000  a<=50  b<=200   w<=1000

未测试代码:

#include <cstdio>
#include <fstream>
int main(int argc, char *argv[])
{
    //freopen("guai.in", "r", stdin);
    //freopen("guai.out", "w", stdout);

    int n,w,A,B,x,y;
    int sum=0;
    scanf("%d %d %d %d",&n,&w,&A,&B);
    while(n--){
    	scanf("%d %d",&x,&y);
    	if(w<=0) break;
    	if(x>A+B)continue;
    	if(x<A+B)w-=y;
    	sum++;
    }
    printf("%d\n",sum);

    //fclose(stdin);
    //fclose(stdout);
    return 0;
}
           
NOI