zoukankan      html  css  js  c++  java
  • 第七届 山东省ACM Execution of Paladin(水题)

    Execution of Paladin

    Time Limit: 2000MS Memory Limit: 65536KB

    Problem Description

    Murloc is a powerful race in Hearthstone. In the set League of Explorers, a new Paladin ability card called Anyfin Can Happen is released with the ability to summon 7 Murlocs that died this game. If there aren’t enough dead Murlocs, it may summon less than 7 Murlocs.
            

    There are many different minions in Murloc race, here are four of them:

    Coldlight Oracle: 3 MANA, 2 ATTACK, 2 HP. Battlecry: Each player draws 2 cards.

    Murloc Warleader: 3 MANA, 3 ATTACK, 3 HP. ALL other Murlocs have +2/+1.

    Bluegill Warrior: 2 MANA, 2 ATTACK, 3 HP. Charge.

    Old Murk-Eye: 4 MANA, 2 ATTACK, 3 HP. Charge. Has +1 Attack for each other Murloc on the Battlefield.


    Here are some explanations:

    MANA: The cost of summon the minion. Minions summoned by ability cards cost no mana besides the cost of the ability cards. Every player has 10 MANAs at most.

    ATTACK: How many damage can the minion make once.

    HP: How many attacks can the minion or heroes take.

    Battlecry: An ability where a particular effect activates when the card with the Battlecry is played directly from the hand. The minions summoned by ability won’t activate their Battlecry.

    Charge: Minions cannot attack at once when they are summoned unless they have Charge description. They will have to wait until next turn.

    Battlefield: The battlefield (or game board) is where the action takes place, representing the board on which each game is played out.

    +2/+1: +2 ATTACK and +1 HP.

    Now, it is your turn. You have 10 MANAs and only one card: Anyfin Can Happen. There are nothing on the Battlefield, which means your minions can directly attack enemy hero. You can remember the list of dead Murlocs. You know how many HP the enemy hero remains. Will you win this game through this only card you have?

    Input

     Multiple test cases. The first line contains an integer T (T<= 22000), indicating the number of test case.

    The first line of each test contains two integers, n (the number of dead Murlocs, 0 <= n <= 7) and h (the HP of enemy hero, 0 < h <= 30).

    Then n lines follows, each line contains a string, indicates the name of dead Murloc. The string will only be “Coldlight Oracle”, “Murloc Warleader”, “Bluegill Warrior” or “Old Murk-Eye”.

    Output

     One line per case. If you can win the game in this turn, output “Mrghllghghllghg!”(Without quotes). Otherwise, output “Tell you a joke, the execution of Paladin.” You will win the game if you attack enemy hero with your minions and make his/her HP less or equal than 0.

    Example Input

    33 1Coldlight OracleColdlight OracleMurloc Warleader3 8Old Murk-EyeOld Murk-EyeColdlight Oracle7 30Old Murk-EyeBluegill WarriorBluegill WarriorMurloc WarleaderMurloc WarleaderColdlight OracleColdlight Oracle

    Example Output

    Tell you a joke, the execution of Paladin.Mrghllghghllghg!Tell you a joke, the execution of Paladin.

    Hint

     In the first test case, none of the Murlocs can attack.

    In the second test case, every Old Murk-Eye has +2 ATTACK because there is another Old Murk-Eye and a Coldlight Oracle. So the total damage is 8.

    In the last test case, Old Murk-Eye has 12 ATTACK (2 basic ATTACK, 6 other Murlocs and 2 Murloc Warleader), two Bluegill Warriors has 6 ATTACK(2 basic ATTACK, and 2 Murloc Warleader) each. So the total damage is 24.

    Author

      “浪潮杯”山东省第七届ACM大学生程序设计竞赛

    水题,加加减减!!!

    #include <bits/stdc++.h>
    using namespace std;
    int sum1,sum2,sum3;
    char s1[10],s2[10];
    int main()
    {
        int n,m;
        int T;
        scanf("%d",&T);
    
    
        while(T--)
        {
            scanf("%d %d",&n,&m);
            sum1 = sum2 = sum3 = 0;
            int num =  0;
            for(int i = 0 ;i<n;i++)
            {
                scanf("%s %s",s1,s2);
                if(s1[0] =='C') continue;
                if(s1[0] == 'M')
                    sum2++;
                else if(s1[0] == 'B')
                    sum1+=2,num++;
                else if(s1[0] == 'O')
                    sum1+=2,sum3++,num++;
            }
    
    
            int sum = sum2*2*num+sum1+sum3*(n-1);
            if(sum>=m) printf("Mrghllghghllghg!
    ");
            else printf("Tell you a joke, the execution of Paladin.
    ");
        }
        return 0;
    }
    
  • 相关阅读:
    默比乌斯函数
    勒让德符号相关
    微积分入门("SX"T版)
    分治法求2n个数的中位数
    SSM框架学习之高并发秒杀业务--笔记1-- 项目的创建和依赖
    10月9日Android学习笔记:活动与服务之间的通信
    高精度加法
    Windows环境下多线程编程原理与应用读书笔记(4)————线程间通信概述
    郁闷
    素数链
  • 原文地址:https://www.cnblogs.com/zswbky/p/6717879.html
Copyright © 2011-2022 走看看