你的对手太坏了!在每年的年度三色抽卡游戏锦标赛上,你的对手总是能打败你,他的秘诀是什么?

在每局三色抽卡游戏中,有n个卡组,每个卡组里所有卡片的颜色都相同,且颜色只会是红(R)、绿(G)、蓝(B)中的一种。第i个卡组有vi张卡片。

对决双方每次只能选择一个还未抽完卡的卡组,从中拿走若干张卡片,可以全拿走,但不能一张都不拿。你只能选择颜色为红或者绿的卡组,而对手只能选择颜色为蓝或者绿的卡组。

你是先手,你和对手轮流行动,谁不能操作了就输了。

因为你的对手每次总是能打败你,你决定写一个程序来帮助你做出决策。

给定游戏刚开始时的卡组情况,你的程序需要判断假设双方都按照最优策略操作,那么你是否会赢?

Input

第一行包含一个正整数T(1≤T≤100),表示测试数据的组数。

每组数据第一行包含一个正整数n(1≤n≤1000),表示卡组的数量。

接下来n行,每行一个字符ci(ci∈{′R′,′G′,′B′})和一个正整数vi(1≤vi≤1000),分别表示第i个卡组的颜色以及卡片数量。

Output

对于每组数据输出一行,若你能赢,输出YES,否则输出NO。

Sample Input

3
2
R 2
B 3
2
B 2
R 3
3
R 5
B 6
G 1

Sample Output

NO
YES
NO 主要是看绿色的牌 看谁能多抽一张 或者平局 就是nim游戏 比赛的时候没有反应过来 一直在找规律 不过反应过来也不会写
nim游戏只要进行位运算即可
#include<bits/stdc++.h>
using namespace std;
//input
#define rep(i,a,b) for(int i=(a);i<=(b);i++)
#define repp(i,a,b) for(int i=(a);i>=(b);i--)
#define RI(n) scanf("%d",&(n))
#define RII(n,m) scanf("%d%d",&n,&m);
#define RIII(n,m,k) scanf("%d%d%d",&n,&m,&k)
#define RS(s) scanf("%s",s);
#define ll long long
#define inf 0x3f3f3f3f
#define REP(i,N) for(int i=0;i<(N);i++)
#define CLR(A,v) memset(A,v,sizeof A)
//////////////////////////////////
#define N 500+5
int main()
{
int cas;
RI(cas);
while(cas--)
{
int n;
RI(n);
int hong=;
int lan=;
int flag=;
while(n--)
{
char s[];
RS(s);int x;RI(x);
if(s[]=='B')lan+=x;
if(s[]=='R')hong+=x;
if(s[]=='G')flag^=x;
}
if(flag)hong++;
if(hong>lan)
printf("YES\n");
else printf("NO\n");
}
return ;
}

三色抽卡游戏 博弈论nim的更多相关文章

  1. Java实现 蓝桥杯 算法提高 抽卡游戏

    试题 算法提高 抽卡游戏 某个抽卡游戏卡池抽出限定卡的概率为p,该游戏有一个"井"的机制,抽满k次卡后直接送这张限定卡.试求获得这张限定卡需要的期望抽卡次数.输入为一行,用空格隔开 ...

  2. 洛谷.2197.nim游戏(博弈论 Nim)

    题目链接 后手必胜(先手必败,P-position)当且仅当n堆石子数异或和为0. 首先0一定是P-position, 假设a1^a2^a3^...^an=K 若K!=0,则一定可以找到一个ai,ai ...

  3. 第1章 游戏之乐——NIM(2)“拈”游戏分析

    NIM(2)“拈”游戏分析 1. 问题 有N块石头和两个玩家A和B,玩家A先将石头分成若干堆,然后按照BABA……的顺序不断轮流取石头,能将剩下的石头一次取光的玩家获胜.每次取石头时,每个玩家只能从若 ...

  4. NIM游戏,NIM游戏变形,威佐夫博弈以及巴什博奕总结

    NIM游戏,NIM游戏变形,威佐夫博弈以及巴什博奕总结 经典NIM游戏: 一共有N堆石子,编号1..n,第i堆中有个a[i]个石子. 每一次操作Alice和Bob可以从任意一堆石子中取出任意数量的石子 ...

  5. [CSP-S模拟测试]:抽卡(概率DP)

    题目描述 水上由岐最近在肝手游,游戏里有一个氪金抽卡的活动.有$n$种卡,每种卡有 3 种颜色.每次抽卡可能什么也抽不到,也可能抽到一张卡.每氪金一次可以连抽 m 次卡,其中前$m−1$次抽到第$i$ ...

  6. BZOJ1864[ZJOI2006]三色二叉树[树形DP]

    1864: [Zjoi2006]三色二叉树 Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 773  Solved: 548[Submit][Status] ...

  7. 【BZOJ-1864】三色二叉树 树形DP

    1864: [Zjoi2006]三色二叉树 Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 659  Solved: 469[Submit][Status] ...

  8. 【BZOJ1864】[Zjoi2006]三色二叉树 树形DP

    1864: [Zjoi2006]三色二叉树 Description Input 仅有一行,不超过500000个字符,表示一个二叉树序列. Output 输出文件也只有一行,包含两个数,依次表示最多和最 ...

  9. BZOJ 1864: [Zjoi2006]三色二叉树( 树形dp )

    难得的ZJOI水题...DFS一遍就行了... ----------------------------------------------------------------------- #inc ...

随机推荐

  1. __dict__(字典的另一种用法)

    class Foo(): def __init__(self): self.name=None self.age=19 self.addr='上海' @property def dict(self): ...

  2. CSS margin属性取值

    margin表示一个元素的外边距.取值为正值时,表示相对于正常流离邻近元素更远,而取负值时,使其更近 但是,设置margin后,四个方向的表现形式不同 自身发生移动:top.left margin-t ...

  3. Confluence 6 高级性能诊断

    请在你的系统服务请求中包括下面所有的信息,如果可能的话,你也可以在请求中包括你认为最有可能出现的问题.这样的话,可以避免我们进一步对你系统的问题进行询问. 系统信息 Confluence 服务器 你系 ...

  4. Git- 命令及使用

    关于Git相关介绍这里就不介绍了,可转<Git- 简介>或者查看官网信息.这篇整理一下git相关的命令.   1) 远程仓库相关命令 克隆下载仓库:$ git clone git://gi ...

  5. 分布式通讯架构RPC简单实现

    什么是RPC: RPC(Remote Procedure Call,远程过程调用),一般用来实现部署在不同机器上的系统之间的方法调用,使得程序能够像访问本地系统资源一样,通过网络传输去访问远端系统资源 ...

  6. laravel 分类的列表查询

    public function index(Request $request, ResponseFactoryContract $response, QuestionModel $questionMo ...

  7. cf1140E 回文串+染色方案dp

    有点硬核的dp..要用到一个结论.. /* 把原串拆成奇偶串,再拆成极大连续的-1串:该串两端都是非-1数,中间都是-1,并且下标要么都是偶数,要么都是技术 然后对所有这些串进行dp,dp[i][0] ...

  8. Nginx详解二十二:Nginx深度学习篇之Lua解释器安装及基础语法

    解释器 Lua:Lua是一个简洁.轻量.可扩展的脚本语言 Nginx+Lua优势充分的结合Nginx的并发处理epoll优势的Lua的轻量实现简单的功能切高并发的场景 安装Lua 1.安装解释器:yu ...

  9. JavaScript 高级程序设计 第二版

    function outputNumbers(count) {     (function () {         for (var i =0;i < count; i++) {        ...

  10. C# 读取sqlite文件

    class Program { static void Main(string[] args) { getsqliteData(); } public static void getsqliteDat ...