zoukankan      html  css  js  c++  java
  • 杭州电子科技大学程序设计竞赛(2016’12)- 网络同步赛 1004

    我要拿走你的蜡烛

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 0    Accepted Submission(s): 0


    Problem Description
    Darkrai最近喜欢玩《炉石传说》,他在一局比赛中使用了吉安娜英雄,选择了冰法套牌。


    炉石传说游戏的目的是使对方英雄的生命值降低到0点及0点以下,谁先做到谁就获得胜利。
    炉石传说有一个规则限制是法力水晶,每回合玩家会有一定的法力水晶(本题目中全部看作10个),每使用一张卡牌,会消耗卡牌左上角的数字的法力水晶,法力水晶不够即无法使用。

    本题目中涉及到4张卡牌,分别是:火球术、寒冰箭、狗头人地卜师、进化的狗头人,其中——
    火球术——花费4个法力水晶,可以造成6点伤害。
    寒冰箭——花费2个法力水晶,可以造成3点伤害(本题目中,不必考虑冻结效果)。
    狗头人地卜师——花费2个法力水晶,使用后,你会召唤一个狗头人地卜师,然后接下来你使用的所有法术(火球术、寒冰箭)的伤害值会+1。(加成效果可以叠加,比如当你召唤2个狗头人地卜师后,这个伤害值会+2)。
    进化的狗头人——花费4个法力水晶,效果类比狗头人地卜师,不过是使伤害值+2(同样可以叠加)。

    现在,他在游戏中被人逼到了类似这个局面!他只剩下1滴血,且场上没有任何随从,如果这一回合他不能打败对手,下一回合就一定会被对手击败了!

    现在,请聪明的你帮他算一下——他是否能打败对手呢?


    注1:狗头人地卜师和进化的狗头人的效果可以叠加。
    注2:本题目中,不考虑随从攻击,不考虑英雄技能,也不考虑实际游戏中每种卡牌只有2张的限制(换句话说,本题目中每种卡牌张数可能大于2张),只考虑如上所述4种卡牌。
    Input
    输入数据第一行是一个正整数T(T<=200),表示测试数据的组数。
    接下来T行,每行2个正整数n(<=10), m(<=30),n表示Darkrai的手牌数,m表示对手的生命值。
    接下来n行,每行一个字符串,"Fire"代表一张火球术,"Ice"代表一张寒冰箭,"Dog"代表一张狗头人地卜师,"Evolved"代表一张进化的狗头人。
    Output
    对于每组数据,输出一行答案。
    如果Darkrai可以击败对手,输出"Yes",否则输出"No"。
    Sample Input
    1
    1 6
    Fire
    Sample Output
    Yes
    解法:暴力组合,界限是花费等于10和攻击力大于等于m就判断Yes
    #include<bits/stdc++.h>
    using namespace std;
    map<string,int>q;
    int main()
    {
        int t;
        cin>>t;
        while(t--)
        {
            q.clear();
            int n,m;
            cin>>n>>m;
            for(int i=1; i<=n; i++)
            {
                string s;
                cin>>s;
                q[s]++;
            }
            int flag=0;
            for(int i=0;i<=10;i++)
            {
               for(int j=0;j<=10;j++)
               {
                   for(int y=0;y<=10;y++)
                   {
                       for(int z=0;z<=10;z++)
                       {
                             if(i<=q["Dog"]&&j<=q["Evolved"]&&y<=q["Fire"]&&z<=q["Ice"])
                             {
                                 if(i*2+4*j+4*y+z*2<=10)
                                 {
                                     int sum=0;
                                     int sum1=1*i+j*2;
                                     sum=(6+sum1)*y+(3+sum1)*z;
                                     if(sum>=m)
                                     {
                                        // cout<<"Yes"<<endl;
                                         flag=1;
                                         break;
                                     }
                                 }
                             }
                       }
                   }
               }
            }
            if(flag==0)
            {
                cout<<"No"<<endl;
            }
            else
            {
                cout<<"Yes"<<endl;
            }
        }
        return 0;
    }
  • 相关阅读:
    FirstApp,iphone开发学习总结
    FirstApp,iphone开发学习总结7,相机
    FirstApp,iphone开发学习总结6,Navigation的使用
    FirstApp,iphone开发学习总结1,UIview添加UIimage
    oracle 12cR2 RAC deconfig CRS过程记录
    Activex word
    图片灰度化。
    vb word
    加密
    页面内打开word 组件。
  • 原文地址:https://www.cnblogs.com/yinghualuowu/p/6217925.html
Copyright © 2011-2022 走看看