zoukankan      html  css  js  c++  java
  • 三色抽卡游戏 博弈论nim

      

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

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

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

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

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

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

    Input

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

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

    接下来n行,每行一个字符ci(ci{R,G,B})和一个正整数vi(1vi1000),分别表示第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=0;
           int lan=0;
           int flag=0;
           while(n--)
           {
               char s[4];
               RS(s);int x;RI(x);
               if(s[0]=='B')lan+=x;
               if(s[0]=='R')hong+=x;
               if(s[0]=='G')flag^=x;
           }
           if(flag)hong++;
           if(hong>lan)
            printf("YES
    ");
           else printf("NO
    ");
       }
        return 0;
    }
    View Code






  • 相关阅读:
    牛客网 二叉树的镜像 JAVA
    牛客网 反转链表 JAVA
    牛客网 调整数组顺序使奇数位于偶数前面 JAVA
    Integer to Roman LeetCode Java
    Valid Number leetcode java
    Longest Common Prefix
    Wildcard Matching leetcode java
    Regular Expression Matching
    Longest Palindromic Substring
    Add Binary LeetCode Java
  • 原文地址:https://www.cnblogs.com/bxd123/p/10658112.html
Copyright © 2011-2022 走看看