HDU 2509 Be the Winner(博弈论入门题)_c语言be the winner-程序员宅基地

技术标签: 模板题  # 数学博y论  博弈论  

Be the Winner

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 3471    Accepted Submission(s): 1940


Problem Description
Let's consider m apples divided into n groups. Each group contains no more than 100 apples, arranged in a line. You can take any number of consecutive apples at one time.
For example "@@@" can be turned into "@@" or "@" or "@ @"(two piles). two people get apples one after another and the one who takes the last is 
the loser. Fra wants to know in which situations he can win by playing strategies (that is, no matter what action the rival takes, fra will win).
 

Input
You will be given several cases. Each test case begins with a single number n (1 <= n <= 100), followed by a line with n numbers, the number of apples in each pile. There is a blank line between cases.
 

Output
If a winning strategies can be found, print a single line with "Yes", otherwise print "No".
 

Sample Input
  
  
   
2 2 2 1 3
 

Sample Output
  
  
   
No Yes
 

Source
 
题目分析:这是一个nim博弈,具体请见博客:http://blog.csdn.net/acm_cxlove/article/details/7854530

掌握以上规律后,就可以很轻松的做出来了


代码如下:

#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
using namespace std;
int n;int cun[105];int x;
int main(){
    scanf("%d",&x);
    while(x--){
    scanf("%d",&n);
    memset(cun,0,sizeof(cun));
    int res=0;
    for(int i=0;i<n;i++){
    scanf("%d",&cun[i]);
    if(cun[i]>1)res++;
    }
    bool flag=false;
    if(res==1&&n>1){
       flag=true;
    }
    else if(res==0)
    {
        if(n%2==0)flag=true;
    }
    else {
        int ji=cun[0];
        for(int i=1;i<n;i++)
            ji=ji^cun[i];
        if(ji!=0)flag=true;
    }
    if(flag)printf("John\n");
    else printf("Brother\n");
}
return 0;
}




版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lwgkzl/article/details/55003696

智能推荐

常用总结 速率、标准、传输介质与物理构型_常见的网络传输介质速度-程序员宅基地

文章浏览阅读487次,点赞2次,收藏2次。计算机网络_常见的网络传输介质速度

Android Studio 安卓手机上实现火柴人动画(Java源代码—Python)-程序员宅基地

文章浏览阅读621次,点赞24次,收藏23次。ImageView

R语言可视化——熵曲线_熵函数曲线-程序员宅基地

文章浏览阅读2.6k次。引言熵的定义是:f(x)=−xln(x)f(x) = -xln(x)f(x)=−xln(x),其中xxx是一个事件发生的频率。今天就R语言curve函数来画一下从0到1的熵曲线。代码fun <- function(x){ -log(x)*x}curve(fun, 0, 1)曲线总结我们可以看到比较有意思的现象,熵最大的时候不是在0.5而是在0.4左右。最后希望可以帮助大家学习使用R语言。水平有限发现错误还望及时评论区指正,您的意见和批评是我不断前进的动力。..._熵函数曲线

c语言二叉树最小值,C语言递归之二叉树的最小深度-程序员宅基地

文章浏览阅读289次。题目描述给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。示例输入:[3,9,20,null,null,15,7]输出:2题目要求/*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *le..._二叉树 最小值 递归

VS调用大漠插件-程序员宅基地

文章浏览阅读331次。地方撒旦_vs调用大漠插件

python3.6 FileNotFoundError: [Errno 2] No such file or directory-程序员宅基地

文章浏览阅读1.0k次。问题描述:在windows下批量下载mp3文件时,存储的是中文名,有几个特殊的文件下载报错了,提示“FileNotFoundError: [Errno 2] No such file or directory: 'E:\\门丽 - 死心塌地去爱你(DJ宇轩\xa0Remix)(DJ宇轩 /门丽 remix).mp3”,检查存储路径都OK的解决方案:经过多番测试验证,发现原来是文件里多了特殊字符“/”,所以最终解决方案是通过str.replace(' ', '').replace('/', '') _filenotfounderror: [errno 2] no such file or directory: '/usr/bin/python3.6

随便推点

TCP、UDP、HTTP、HTTPS之前的区别-程序员宅基地

文章浏览阅读124次。TCP、UDP、HTTP、HTTPS之前的区别网络由下往上分为:物理层—数据链路层—网络层 –  IP协议传输层 –  TCP协议会话层 –表示层和应用层 –  HTTP协议1、TCP/IP连接TCP传输控制协议,是一种提供可靠数据传输的通用协议手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端机通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口...

国内外物联网平台清单-物联网平台技术选型参考_leapiot platform-程序员宅基地

文章浏览阅读360次,点赞11次,收藏9次。物联网平台在不同领域中发挥了重要作用,包括智能家居、工业自动化、农业、智能交通和医疗保健等。在工业自动化领域,物联网平台帮助实现设备的远程监测和维护,提高生产效率,减少停机时间;在农业中,物联网平台可以用于监测农田中的土壤湿度、气象条件和作物生长情况,帮助农民更好地管理农业资源。此外,物联网平台将与人工智能和机器学习集成,以实现智能化决策和预测分析。物联网平台是一种软件解决方案,用于连接、管理和监控物联网设备。物联网平台的主要组件和功能包括设备连接和管理、数据采集和存储、数据分析和处理以及应用开发和部署。_leapiot platform

gperf概念以及使用步骤-程序员宅基地

文章浏览阅读3.6k次。GNU 的 gperf 工具是一种 “完美的” 散列函数,可以为用户提供的一组特定字符串生成散列表、散列函数和查找函数的 C/C++ 代码。通过本文学习如何使用 gperf 实现 C/C++ 代码中高效的命令行处理。使用步骤:前提,下载安装gperf1,编写.gperf 文件2,然后,执行如下指令,将.gperf 文件转换为.c文件gperf -t -L C example1.gperf > example1.c3,生成c语言文件gcc -g -o example1 example1.c_gperf

分享phpyun 7.0vip开源版新消息模板设置及零工插件的安装小程序配置_phpyun 模板怎么改-程序员宅基地

文章浏览阅读340次,点赞6次,收藏4次。大家都知道,最近微信官方公众号又改版了,这次改版的是消息模板,因为以前的消息机制造成很多客户投诉被骚扰,这样在体验上非常差,于是官方更新了消息模板机制,这个苦了一批CMS系统开发者,因为针对公众号消息推送模板的改版他们又要批量修改,有需要代码可以Q我昵称注明CSDN网友,针对于此我分享下新版本phpyun,V7.0人才系统针对新消息模板怎么匹配和设置。对应编号:OPENTM418069699 (行业 商业服务 - 中介服务)对应编号:OPENTM202361543 (行业 商业服务 - 中介服务)_phpyun 模板怎么改

SpringBoot项目部署到Tomcat-程序员宅基地

文章浏览阅读7.2k次,点赞9次,收藏59次。一般情况下,我们开发 SpringBoot 项目,由于内置了Tomcat,所以项目可以直接启动 (使用内置 Tomcat 的话,可以在 application.yml 中进行相关配置)_springboot项目部署到tomcat

electron-egg: 新一代桌面应用开发框架_electron框架-程序员宅基地

文章浏览阅读3.4k次。EE框架已经应用于医疗、学校、政务、股票交易、ERP、娱乐、视频、企业等领域客户端。_electron框架