山东省第七届ACM竞赛 J题 Execution of Paladin (题意啊)

题意:鱼人是炉石里的一支强大种族,在探险者协会里,圣骑士有了一张新牌,叫亡者归来,效果是召唤本轮游戏中7个已死鱼人。如果死掉的不足7个,那么召唤的数量就会不足7。

  鱼人有很多,下面的4个是:

  寒光智者:3费,2攻,2血,战吼:双方玩家各抽2张牌。

  鱼人领军:3费,3攻,3血,其他鱼人获得+2/+1。

  蓝腮战士:2费,2攻,3血,冲锋。

  老瞎眼:4费,2攻,3血,冲锋。战场上每有1个其他鱼人就会使其获得+1攻击。

  下面给一些说明:

  法力:召唤随从的消耗。技能效果召唤的随从不消耗额外法力,只会消耗卡牌本身法力,双方玩家最多有10点法力。

  攻击:随从每次能造成的伤害。

  战吼:拥有战吼效果的随从,在从手牌里打出时会触发这个效果。被技能召唤的随从不会触发战吼。

  冲锋:本来,在召唤出来的这一轮,随从是无法攻击的,但是有冲锋就可以。在召唤回合可以直接攻击。

  战场:战场(游戏盘),游戏各种内容发生的地方,每场游戏都发生在棋盘上。

  +2/+1:+2攻击和+1血量。

  现在,轮到你出牌了,你有10点法力,只剩一张亡者归来。战场上没有任何随从,意味着你的随从可以直接攻击对手英雄。你还记得你出过的鱼人,也知道对手英雄的血量,那你能够用手上唯一这张牌赢得胜利吗?

  输入

  多种测试方案,第1行包括 integer 7 (7<=22000);表示测试数量。

  每个测试的第1行都包括2个integer,n(已死的鱼人,0<=n<=7),h(英雄血量,0

  后续N行里,每行都包括string,表示已死鱼人名称,String只能为:“寒光智者”,“鱼人领军”,“蓝腮战士”,“老瞎眼”。

  输出

  列出所有方案后,如果能赢得游戏,那就输出"乌拉啦啦啦呱啦蛤蛤!"(没有引号),否则输出“跟你说个笑话:圣骑士的斩杀”。使用随从攻击敌人英雄,使其血量少于等于0即可胜利。

  示例

输入 输出

3

3 1

寒光智者

寒光智者

鱼人领军

3 8

老瞎眼

老瞎眼

寒光智者

7 30

老瞎眼

蓝鳃战士

蓝鳃战士

鱼人领军

鱼人领军

寒光智者

寒光智者

讲个笑话:圣骑的斩杀

乌拉拉拉拉呱呱

讲个笑话:圣骑的斩杀

  提示

  第1个方案里,鱼人都无法攻击。

  第2个方案里,每个老瞎眼都有+2攻击,因为另外的一个老瞎眼和寒光智者,因此总伤害为8。

  最后一个方案里,老瞎眼有12攻击(2点基础攻击,6个其他随从;2个鱼人领军,2个蓝腮战士有6攻(2基础攻击,2个鱼人领军)因此总伤害是24)。

析:毛线啊,这个题,是什么啊,是炉石游戏的,如果没有玩的小伙伴可就惨了,因为这个题意特别不好理解,关键是要抠字眼。

主要是在这个冲锋,也就是说如果没有冲锋的鱼人,是无法攻击的,也就是说只有老瞎眼主蓝鳃战士是可以攻击的,别的都只能是提供技能而已,

寒光智者也没有技能,就只能充人数,不对应该是鱼数,因为对老瞎眼来说,对于其他每个鱼都能加一个攻击力,然后鱼人领军能给别鱼加2攻击力。

所以答案也就出来了,首先是老瞎眼和蓝鳃战士的攻击力+(n-1)*老瞎眼的个数,这是它的技能,再加上鱼人领军对老瞎眼和蓝鳃战士。

代码如下:

#include <iostream>
#include <cstdio>
#include <cstring>

using namespace std;
const int maxn = 100;
char s[maxn];

int main(){
    int T, n, m;  cin >> T;
    while(T--){
        scanf("%d %d", &n,&m);
        getchar();
        int o = 0, b = 0, w = 0;
        for(int i = 0; i < n; ++i){
            gets(s);
            if('B' == s[0])   ++b;
            else if('M' == s[0])  ++w;
            else if('O' == s[0])  ++o;
        }

        int ans = (n-1) * o + 2 * (b+o) + 2*w * (o+b);
        if(ans >= m)   puts("Mrghllghghllghg!");
        else  puts("Tell you a joke, the execution of Paladin.");
    }
    return 0;
}
原文地址:https://www.cnblogs.com/dwtfukgv/p/5576135.html