首页 > 其他分享 >题解 UVA1566 John

题解 UVA1566 John

时间:2023-09-15 19:11:42浏览次数:40  
标签:John int 题解 scanf 石子 UVA1566 若堆

题目描述

两个人轮流取石子,每人每次可以 \([1,a_i]\) 个石子,最后取完石子的人为负。问最终谁会赢。

具体思路

  • 若堆数为 \(1\) 且该堆数量为 \(1\),先手必败。

  • 若堆数不为 \(1\) 且每堆数量都为 \(1\),若有奇数堆,先手比败,否则,先手必胜。

  • 若堆数不为 \(1\),转换为 \(Nim\) 游戏,判胜负条件反过来即可。

Code

#include<bits/stdc++.h>
using namespace std;
const int N=51;
int a[N];
int main(){
    int t;scanf("%d",&t);
    while(t--){
        int n,ans=0,sum=0;scanf("%d",&n);
        for(int i=1;i<=n;i++){
            scanf("%d",&a[i]);
            ans=ans^a[i];
            sum=sum+a[i];
        }
        if(sum==n){
            if(n&1)puts("Brother");
            else puts("John");
        }
        else{
            if(ans)puts("John");
            else puts("Brother");
        }
    }
    return 0;
}

标签:John,int,题解,scanf,石子,UVA1566,若堆
From: https://www.cnblogs.com/reclusive2007/p/17705749.html

相关文章

  • 洛谷题解 | P1046 陶陶摘苹果
    ​目录题目描述输入格式输出格式输入输出样例说明/提示题目思路AC代码题目描述陶陶家的院子里有一棵苹果树,每到秋天树上就会结出 10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个 30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现......
  • 《特殊函数概论》Chapter 3习题解答
    《特殊函数概论》Chapter3习题解答卷心汪汪队众所周知,王竹溪、郭敦仁所著的《特殊函数概论》是一本对初学特殊函数的同学非常友好的书,特别是对我这种英语不好的人来讲,不用一边翻字典一边看Whittaker&Waston了但是据我所知,特殊函数概论应该是没有完整......
  • 题解 P8920 『MdOI R5』Variance
    题目描述给你两个长度为\(n\)的序列\(a\)和\(b\),让你选\(n\)个\(c_i\in[a_i,b_i]\),使得\(\frac{1}{n}\sum_{i=1}^n(c_i-\overlinec)^2\)最大。具体思路首先我们从方差的定义出发,方差代表了数据的波动程度,公式为:$$s^2=\frac{1}{n}\sum_{i=1}^n(a_i-\overline......
  • Fox and Minimal path 题解
    FoxandMinimalpath题目大意构造一张无向图,使得从\(1\)到\(2\)的最短路数量为\(k\)。思路分析我们首先可以发现当\(k=2^t\)时的构造方式:其中只有\(O(\logk)\)个点。当\(k\not=2^t\)时,我们可以将\(k\)二进制拆分,对于每一个二进制位重复上述操作,就可以得......
  • 课堂问题解答
    一、运行结果:由于浮点数在计算机内部的表示方式是有限的,所以在进行浮点数计算时可能会出现精度损失,导致结果不是准确的。在第一行代码中,计算0.05+0.01的结果,预期应该是0.06。然而,由于浮点数的精度限制,实际计算结果可能是一个近似值,例如0.060000000000000005。这就导致了打......
  • NOI 2023 题解
    CopperLoser的题解……Day1T1方格染色有一个\(n\timesm\)的网格,有\(Q\)次操作,每次形如有三种:将\((x_i+j,y_i)\)/\((x_i,y_i+j)\)/\((x_i+j,y_i+j)\)染色,其中\(j=0,1\dotsL_i-1\)。第三种操作至多只有\(5\)次,问之中有多少个格子被染过色。扫描线板子题,首先令......
  • 『题解』P6055
    给出\(N\),求:\[\sum_{i=1}^N\sum_{j=1}^N\sum_{p=1}^{\lfloor\frac{N}{j}\rfloor}\sum_{q=1}^{\lfloor\frac{N}{j}\rfloor}[\gcd(i,j)=1][\gcd(p,q)=1].\]考虑化简。存在一个性质,但是我当时推的时候忘记了。即:\[\sum_{i=1}^N\sum_{j=1}^N\su......
  • 9.11CF1819 题解
    9.11CF1819题解A.ConstructiveProblem简单题,上链接:链接B.TheButcher题意有一张 \(h\timesw\) 的纸片,现在对这张纸片进行 \(n−1\) 次裁剪。每次裁剪后会将其中一半收归(即这一半不会再被裁剪)。保证纸片不会被旋转。告诉你最终裁剪后的 \(n\) 张纸片长宽,问初始......
  • Flutter插件flutter_boost 在android模块中的报红问题解决.
    1,在开发Flutter插件时,打开插件的android项目,准备编写native端的代码时,发现各种报红,代码无法跳转,体验十分不好。就像我下面的截图一样:导入了FlutterBoostflutterBoost源码爆红。但是运行正常。。这说明本身是没有问题的。。分明是没有错误的类都存在。但是就是爆红。。。。可......
  • 拼多多面试题解析:Java实现继承的七种方式!
    大家好,我是小米!今天,我要和大家一起来深入探讨一下拼多多的面试题:Java实现继承有哪7种方式?这是一个相当有深度的问题,不过别担心,我会尽力以通俗易懂的方式给大家讲解清楚,让大家对Java继承有更深刻的理解。什么是继承在Java编程中,继承是一种非常重要的概念,它允许一个类(子类/派......