4.H - 组合

题目连接:http://acm.hust.edu.cn/vjudge/contest/125308#problem/H

题目大意:
下面是一个二人小游戏:桌子上有M堆扑克牌;每堆牌的数量分别为Ni(i=1…M);两人轮流进行;每走一步可以任意选择一堆并取走其中的任意张牌;桌子上的扑克全部取光,则游戏结束;最后一次取牌的人为胜者。 
现在我们不想研究到底先手为胜还是为负,我只想问大家: 
——“先手的人如果想赢,第一步有几种选择呢?” 

这是一个尼姆博弈的问题,涉及到了一个运算Xor(异或运算),Xor是位运算的一种,1Xor1=0,1Xor0=1,0Xor1=1.为运算可以用于两个数之间,其定义就是把两个数转化成二进制,然后一位一位的进行位运算。c++中用^表示。例如:1^5=(001)^(101)=100(4)。Xor具有交换律,结合律, 而且是本身的逆运算(a^b^a=b),满足消去律

从一个非奇异局势向一个奇异局势转换的方式可以是:
1)使 a = c(+)b
2)使 b = a(+)c
3)使 c = a(+)b

 

#include<iostream>
#include<cstdio>
using namespace std;
#define N 105
int d[N];
int main()
{int n;while(scanf("%d",&n)&&n!=0){int m=0,sum=0;for(int i=1;i<=n;i++){scanf("%d",&d[i]);m=m^d[i];}//if(m==0) printf("奇异局势")for(int i=1;i<=n;i++){
          //这里有个括号
if((m^d[i])<d[i])
                  //如果m^d[i]<d[i]说明了的d[i]中可以取出一个数sum++; //使得的d[i] 变为m^d[i],成为奇异局势 }printf("%d\n",sum);}return 0; }

 

转载于:https://www.cnblogs.com/Twsc/p/5738327.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/256668.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

结构体指针需要申请指针内存,结构体对象不需要申请对象内存

struct frame_info { char* data;//图像数据 int bufsize;//图像大小 }&#xff1b; 1、struct frame_info* finfoDT new struct frame_info; finfoDT->data new 1280*720 2、struct frame_info finfoDT new struct frame_info; finfoDT.data new 1280*720

图论——连通图

Tyvj 2059 元芳看电影 描述 神探狄仁杰电影版首映这天&#xff0c;狄仁杰、李元芳和狄如燕去看电影。由于人实在是太多了&#xff0c;入场的队伍变得十分不整齐&#xff0c;一个人的前面可能会出现并排的好多人。“元芳&#xff0c;这队伍你怎么看&#xff1f;”“大人&#xf…

linux-ftools查看Linux 的cached里面有哪些内容

最近&#xff0c;公司有几台java服务器经常出现can not allocate memory 的情况。导致SSH登录失败。 因此&#xff0c;有必要做点什么。 我们可以使用linux-ftools查看Linux 的cached里面有哪些内容&#xff08;工具: https://code.google.com/p/linux-ftools/&#xff09;&…

matlab常用函数——软件常用函数

一、软件操作函数 1)命令窗口函数: clc:清空命令窗口,使用向上箭头翻看命令。 open:打开文件,文本文件(*.doc),可执行文件(*.exe),图形文件(*.fig),超文本文件(*.html,*.htm),MATLAB数据库文件(*.mat),simulink模型文件*.mdl),MATLAB p文件(*.p),…

stanford corenlp的TokensRegex

最近做一些音乐类、读物类的自然语言理解&#xff0c;就调研使用了下Stanford corenlp&#xff0c;记录下来。 功能 Stanford Corenlp是一套自然语言分析工具集包括&#xff1a; POS(part of speech tagger)-标注词性NER(named entity recognizer)-实体名识别Parser树-分析句子…

将Linux系统下交叉编译的依赖库推到ARM平台下无法建立以来关系解决

问题&#xff1a;平常把opencv库使用源码交叉编译好之后&#xff0c;从windows推到飞机里发现&#xff0c;该库的依赖关系都没有了&#xff0c;导致程序运行的时候报该库大小有问题 解决办法&#xff1a; 1、将linux下的库推到ARM平台中的一个文件夹中&#xff0c;然后将ARM平台…

Java:switch语句例子

1、输入一个名次&#xff0c;第1&#xff5e;4名&#xff0c;分别称为冠军、亚军、季军、殿军&#xff0c;5名及5名以上&#xff0c;称为其他名次。 import java.util.Scanner; public class switch1 {public static void main(String[] args){Scanner snew Scanner(System.in)…

SQL计算100以内的质数(可以把100换成任意的整数)

declare i int --定义局部变量ideclare j int --定义局部变量jset i1 --给变量i赋值while i<100 --最外层while循环控制计算20以内的质数&#xff0c;每循环一次提供一个数&#xff0c;判断它是不是质数begin --最外层while循环开始set j1 --给变量j赋…

matlab常用函数——数据类型函数

三、基本数据类型函数 1)数值函数 double:转换为双精度浮点数 single:转换为单精度浮点数 typecast:在不改变数据大小情况下转换数据类型 Y=typecast(X,type) type可选范围:uint8、int8、uint16、int16、uint32、int32、uint64、int64、single、double arrayfun:把函数…

Courses hdu 1083(匹配)

http://acm.hdu.edu.cn/showproblem.php?pid1083 题意&#xff1a;一共有N个学生跟P门课程,一个学生可以任意选一门或多门课,问是否达成: 1.每个学生选的都是不同的课(即不能有两个学生选同一门课) 2.每门课都有一个代表(即P门课都被成功选过) 今天学姐讲匹配时讲的题目&#…

进程编译连接动态库,需要将动态库改为lib***.so

1、本身该库可能编译成npuDetect.so,但是需要改其名字为libnpuDetect.so,CMakelists才能找到该库 2、进程中连接动态库&#xff0c;如果该库还依赖别的动态库&#xff0c;则需要继续把其他的库也要连接进来

Drbd+Pacemaker实现高可用

What is Pacemaker? Pacemaker是一个集群资源管理器。它利用集群基础构件&#xff08;OpenAIS 、heartbeat或corosync&#xff09;提供的消息和成员管理能力来探测并从节点或资源级别的故障中恢复&#xff0c;以实现群集服务&#xff08;亦称资源&#xff09;的最大可用性。 前…

matlab常用函数——矩阵函数

五、数组和矩阵函数 1)数组基本函数 display:显示字符或者数组 isempty :判断数组是否为空,空返回1,不空返回0 isequal :判断数组是否相同 (认为NaN不同) isequalwithequalnans:判断数组是否相同,把NaN看成相同的数 isfinite :判断数组元素是否为有限数 isfloat…

记录下面试中的回答的不好的问题

1 伙伴系统在linux中的作用&#xff0c;具体咋回事 2 tcp拥塞控制 滑动窗口 3 linux sed&#xff0c;awk的具体使用 4 ftp哪几种模式 5 中断与轮询 6 C stl的vector是怎么是实现的 7 I/O多路复用是怎么回事&#xff0c;select(),epoll()具体怎么回事。 一个文件中每行一个单词&…

Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、...

去空格及特殊符号 s.strip().lstrip().rstrip(,) 复制字符串 #strcpy(sStr1,sStr2)sStr1 strcpysStr2 sStr1 sStr1 strcpy2print sStr2 连接字符串 #strcat(sStr1,sStr2)sStr1 strcatsStr2 appendsStr1 sStr2print sStr1 查找字符 #strchr(sStr1,sStr2)# < 0 为未找到…

周赛题解

A - An easy problemTime Limit:3000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status Practice HDU 2601Description When Teddy was a child , he was always thinking about some simple math problems ,such as “What it’s 1 cup of wa…

matlab常用函数——数学函数

六、基本数学函数 1)基本运算符 +:加法运算符 -:减法运算符 *:矩阵乘法 .*:数组乘法 /:斜杠或者矩阵右除 B/A等于公式B*inv(A) ./:数组右除 A./B等于A(i,j)/B(i,j) \:反斜杠或者矩阵左除 A\B等于inv(A)*B .\:数组左除 A.\B等于B(i,j)/A(i,j) ^…

内存容量出现异常的解决办法

【鄙视360人工服务工程师 笨死你!】 如果哪天的内存容量突然出现了异常 而且发现只有一半可以使用的时候 不是内存出现了问题 而是设置的问题。 【win 7 win 8 win 10通用的解决办法】 问题描述&#xff1a; 我是win 10 64位系统 内存容量突然只有一半了 打开我的电脑的设置看了…

Oracle 变量绑定与变量窥视合集系列一

《Oracle 变量绑定与变量窥视合集》 数据库环境 LEO1LEO1> select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production PL/SQL R…