zoukankan      html  css  js  c++  java
  • 2015苏州大学ACM-ICPC集训队选拔赛(1) 1005

    发现

    Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other)
    Total Submission(s) : 70   Accepted Submission(s) : 27

    Font: Times New Roman | Verdana | Georgia

    Font Size: ← →

    Problem Description

      最近,炉石传说开放了新冒险模式——探险者协会!开放了一种新的技能:“发现”!
      它的效果是提供三张卡牌(随从卡 / 法术卡),你可以获得任意一张,并丢掉另外两张。
      现在你可以使用 n 次“发现”技能,当然到最后你会得到 n 张卡牌,如今已经给出每次使用技能后可以选择的三张卡的属性,问你能否获得至少 a 张随从卡以及 b 张法术卡。
      

    Input

      多组输入数据(组数<=1000)
      每组输入数据的第一行是三个正整数 n,a,b,含义见上述。(1 <= n <= 1000 , 1 <= a,b <= n)
      接下来 n 行,每行三个数(0或1),0代表随从卡,1代表法术卡。

    Output

      对于每组数据,输出一行 YES 或者 NO 。

    Sample Input

    1 1 0
    1 1 1
    3 1 2
    0 1 1
    0 0 0
    1 1 1

    Sample Output

    NO
    YES
    	
    
    Hint:对于第一组样例,n=1,a=1,b=0,使用1次“发现”技能,至少获得1张随从卡。由于提供的3张都是法术卡(3个1),所以不能达到要求。
         对于第二组样例,n=3,a=1,b=2,使用3次“发现”技能,至少获得1张随从卡,2张法术卡。那么只要在第一次和第三次选法术卡,第二次选随从卡即可。

    Author

    Natureal
    首先,我非常喜欢这题,
    开始呢,我们先用sum1,sum2,sum3纪录发动一次效果是否都存在随从和法术 还是只有随从 还是只有法术  
    如果sum2,sum3的随从和法术卡足够要求,输出YES
    如果只有随从卡符合,但是法术卡少了,我们从sum1中取,看符合要求不。
    同理,要是随从卡还是不符合,只有从sum1中取,那么看法术卡剩下的还能从sum1中取多少
    #include<stdio.h>
    //#include<bits/stdc++.h>
    #include<string.h>
    #include<iostream>
    #include<math.h>
    #include<sstream>
    #include<set>
    #include<queue>
    #include<map>
    #include<vector>
    #include<algorithm>
    #include<limits.h>
    #define inf 0x3fffffff
    #define lson l,m,rt<<1
    #define rson m+1,r,rt<<1|1
    #define LL long long
    using namespace std;
    int main()
    {
        int n,a,b;
        int i;
        int m,s,z;
        int sum_1,sum_2,sum_3,sum_4;
        while(~scanf("%d%d%d",&n,&a,&b))
        {
            sum_1=0;sum_2=0;sum_3=0;sum_4=0;
            for(i=0;i<n;i++)
            {
                scanf("%d%d%d",&m,&s,&z);
                if((m+s+z)>0&&(m+s+z)<3)
                {
                    sum_1++;
                }
                else if(m+s+z==0)
                {
                    sum_2++;
                }
                else if(m+s+z==3)
                {
                    sum_3++;
                }
            }
            if((a-sum_2)<=0)
            {
               if((b-sum_3)<=0)
               {
                   puts("YES");
               }
               else
               {
                   b=b-sum_3;
                   if((b-sum_1)<=0)
                   {
                       puts("YES");
                   }
                   else
                   {
                       puts("NO");
                   }
               }
            }
            else
            {
                a=a-sum_2;
                if((a-sum_1)<=0)
                {
                    int ans=sum_1-a;
                    if((ans+sum_3)>=b)
                    {
                        puts("YES");
                    }
                    else
                    {
                        puts("NO");
                    }
                }
                else
                {
                    puts("NO");
                }
            }
        }
        return 0;
    }
    

      

  • 相关阅读:
    How to set up a Headless Chrome Node.js server in Docker
    ozone chromium headless
    编译 chromium 的老版本
    chrome单元测试 单独编译 chromium的Gtest
    HTTP协议header中Content-Disposition中文文件名乱码
    windows 10 cmd 窗口 不支持中文 中文乱码 默认gbk 需要改为utf8 临时修改:CHCP 65001
    ubuntu查看core dumped的详细错误原因
    Ubuntu18.04 图形界面 切换 命令行
    Headless Chromium
    添加chromium mojom调用
  • 原文地址:https://www.cnblogs.com/yinghualuowu/p/5076777.html
Copyright © 2011-2022 走看看