韬韬与炉石传说
发布时间: 2015年12月7日 13:54 最后更新: 2015年12月12日 23:10 时间限制: 1000ms 内存限制: 128M
最近韬韬周围的小伙伴们都在玩炉石传说, 感觉好厉害的样子, 可是韬韬早都不玩游戏了呢, 自从入坑ACM之后。“不能没有我的蜡烛”, 韬韬天天都能听到这样的句子 - -
听说炉石传说开放了新冒险模式——探险者协会!开放了一种新的技能:“发现”!
它的效果是提供三张卡牌(随从卡 / 法术卡), 你可以获得任意一张, 并丢掉另外两张。
现在你可以使用 n 次“发现”技能, 当然到最后你会得到 n 张卡牌, 如今已经给出每次使用技能后可以选择的三张卡的属性, 韬韬很想知道能否获得至少 a 张随从卡以及 b 张法术卡。
亲爱的小伙伴你可以帮帮韬韬嘛?
第一行是测试样例数t (1 <= t <= 1000) 每组输入数据的第一行是三个正整数 n, a, b含义见上述 数据范围1 <= n <= 1000 , 1 <= a, b <= n 接下来 n 行, 每行三个数(0或1), 0代表随从卡, 1代表法术卡
对于每组数据, 输出一行 YES 或者 NO
2 1 1 0 1 1 1 3 1 2 0 1 1 0 0 0 1 1 1
NO YES
对于第一组样例, n=1,a=1, b=0, 使用1次“发现”技能, 至少获得1张随从卡.由于提供的3张都是法术卡(3个1), 所以不能达到要求
对于第二组样例, n=3,a=1, b=2, 使用3次“发现”技能, 至少获得1张随从卡, 2张法术卡. 那么只要在第一次和第三次选法术卡, 第二次选随从卡即可
水题 重庆大学校赛
#include<stdio.h>
int main()
{
int t,n,a,b,x1,x2,x3,sum;
scanf("%d",&t);
while(t--)
{
sum=0;
scanf("%d %d %d",&n,&a,&b);
for(int i=0;i<n;i++)
{
scanf("%d %d %d",&x1,&x2,&x3);
if((x1&x2&x3)==(x1|x2|x3))
{
if(x1)
{
if(b>0)
b--;
}
else
{
if(a>0)
a--;
}
}
else
{
sum++;
}
}
if(sum>=a+b)
printf("YES\n");
else
printf("NO\n");
}
return 0;
}

韬韬面临炉石传说中的一项挑战:通过选择不同类型的卡牌来完成任务。问题要求判断是否能从一系列给定的卡牌组合中获得指定数量的随从卡和法术卡。
1467

被折叠的 条评论
为什么被折叠?



