技术标签: 博弈
小王喜欢与同事玩一些小游戏,今天他们选择了玩取石子。
游戏规则如下:共有N堆石子,已知每堆中石子的数量,两个人轮流取子,每次只能选择N堆石子中的一堆,取一定数量的石子(最少取一个),取过子之后,还可以将该堆石子中剩下的任意多个石子中随意选取几个放到其它的任意一堆或几堆上。等哪个人无法取子时就表示此人输掉了游戏。注意,一堆石子没有子之后,就不能再往此处放石子了。
假设每次都是小王先取石子,并且游戏双方都绝对聪明,现在给你石子的堆数、每堆石子的数量,请判断出小王能否获胜。
例如:如果最开始有4堆石子,石子个数分别为3 1 4 2,而小王想决定要先拿走第三堆石子中的两个石子(石子堆状态变为3 1 2 2),然后他可以使石子堆达到的状态有以下几种:
3 1 2 2(不再移动石子)
4 1 1 2(移动到第一堆一个)
3 2 1 2(移动到第二堆一个)
3 1 1 3(移动到第四堆一个)
5 1 0 2(全部移动到第一堆)
3 3 0 2(全部移动到第二堆)
3 1 0 4(全部移动到最后)
3 2 1 3 2 1 1 0
Win
Lose
解题思路:以后在写
代码如下:
#include<cstdio>
#include<cstring>
int main()
{
int a[110],n,i,num,flag;
while(~scanf("%d",&n)&&n)
{
memset(a,0,sizeof(a));
for(i=0;i<n;++i)
{
scanf("%d",&num);
a[num]++;
}
flag=0;
for(i=0;i<101;++i)
{
if(a[i]&1)
{
flag=1;
break;
}
}
if(flag)
printf("Win\n");
else
printf("Lose\n");
}
return 0;
}
本篇文章将介绍使用VMware虚拟机安装Red Hat Enterprise Linux8/9,包教包会。_red hat enterprise虚拟机
Oracle数据库导出的方式比较多,也各有优缺点,比较好的方案是使用r_man,但是显得大材小用,一般人也搞不定。我们这边数据量比较小,一般现场人员使用两种方式都出数据,发回研发中心进行分析数据。导出为Excel。导出为SQL脚本。但是这两种方式各有优缺点,Excel表在数据量比较小的情况下查看比较方便,但是倒回数据库比较麻烦。而使用SQL脚本,查看比较麻烦,但是导入到数据库中比较方便;一般我们建议现场的人员。导出SQL脚本给我们。但是最近遇到了SQL脚本执行不了的情况,具体原因是现场使用了_oracle导出表 数据量大影响正常使用吗
--数据库导出表,字段名,长度,类型,字段注释,表注释语句SELECT T1.TABLE_NAME 英文表名,T1.COLUMN_NAME 字段名,T1.DATA_TYPE || '(' || T1.DATA_LENGTH || ')' 字段类型及长度,T2.COMMENTS 字段注释,t3.COMMENTS 表注释FROM USER_TAB_COLS T1, USER_COL_COMME..._oracle导出所有表名
题目描述:打开一个英文文本文件,假设文本文件单词之间全部用“空格”隔开,文本各段之间用“回车符”分开,统计输出文本的段数量,总单词数量,以及文本段的最长、最短、平均单词数量。test.txt 文本内容:随便百度的内容C语言代码:#include <stdio.h>#include <stdlib.h>#include <string.h>..._要求是:写一个c语言程序来统计一个多网页的大规模文本(.txt形式)的非停用单词(sto
点击上方,选择星标或置顶,每天给你送干货!阅读大概需要14分钟跟随小博主,每天进步一丢丢干货作者:风浪-知乎,来源:NewBeeNLP由于金融风控场景的特殊性,很多算法同学在刚进入这..._金融风控设计及总结
今天做filter课后题遇到要求出1000以内所有的质数,在这题中巧用[::-1]def is_palindrome(n):return str(n) == str(n)[::-1]output = filter(is_palindrome, range(1, 1000))print(list(output))简直是厉害啊,一行代码搞定特此记录一下_filter函数怎么写 site:blog.csdn.net
在arduino开发过程中,我们可能会遇到主控烧坏需要重新更换MCU,或者是自己画基于arduino开发的主板需要自行烧录arduino的bootloader的时候。网上很多教程都会告知如何用可正常使用的arduino开发给丢bootloader的板子刷写bootloader,但是像mega2560、uno这类的板子usb转串口是使用16u2,8u2芯片模拟出来的usbserial,一旦该芯片固件_arduino编程器选哪个
介绍如何将LineEdit内的文本转化为int类型,并使用此内容动态绘制图形。介绍如何使用QPainterPath绘制重复的图形。_qt paintevent画重复图形
主要的pom.xml: <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency><!--mongodb--&g_springboot gridfsinputfile
安装方式大致都参看下面的文档debian安装vncserver但是在一步步跟着文档安装的过程中会出错,在执行service vncserver restart命令是会报错Unit vncserver.service failed to load: No such file or directory,这是由于/etc/init.d/下的vncserver脚本写得不完全正确,需要在第二行添加如下内容#...
Ubunt安装pydot和graphviz报错:Failed to import pydot. You must install pydot and graphviz for `pydotprint`_pygraphviz安装失败
apt-get update 更新软件源中的所有软件列表。 apt-get upgrade 更新软件。 apt-get dist-upgrade 更新系统版本。如果你对新版本软件的需求不是那么迫切,可以不执行..._apt-get update