求到达必败态的方法数 ZOJ 3067 Nim
/*
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3067
题意:求胜态到达必败态的方法数
Nim
*/
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;int s[1005];int main(){
#ifndef ONLINE_JUDGEfreopen("in", "r", stdin);
#endifint n;while(scanf("%d", &n), n){int res = 0;for(int i=0; i<n; i++){scanf("%d", &s[i]);res ^= s[i];}if(res){int num = 0;for(int i=0; i<n; i++)if( (res^s[i]) <= s[i])// 要注意(),表示对s[i]的操作可以到达必败态num++;printf("%d\n", num);}elseprintf("0\n");}return 0;
}
求到达必败态的方法数 ZOJ 3067 Nim相关推荐
- 寻找必败态——一类博弈问题的快速解法
博弈是信息学和数学试题中常会出现的一种类型,算法灵活多变是其最大特点,而其中有一类试题更是完全无法用常见的博弈树来进行解答. 寻找必败态即为针对此类试题给出一种解题思路. ...
- 【HDU - 5963】朋友(博弈,思维,必胜态必败态,找规律)
题干: B君在围观一群男生和一群女生玩游戏,具体来说游戏是这样的: 给出一棵n个节点的树,这棵树的每条边有一个权值,这个权值只可能是0或1. 在一局游戏开始时,会确定一个节点作为根.接下来从女生开始, ...
- 牛客多校-Z-Game on grid-(博弈论+必胜态必败态转移)
M 题意: 就是给你一个n×m的棋盘,每个点要么是A,要么是B,要么是 . .然后机器人刚开始在(1,1)点,Alice先控制机器人走一步,Bob控制机器人走一步.每次只能往右或者下走,不能超过棋盘. ...
- 博弈论 - 状态图-推导必胜必败态
#include <bits/stdc++.h> using namespace std;int w[105][105];void getw(){w[1][1]=0;for(int k=3 ...
- SG函数求解 NIM游戏先手必胜必败问题
NIM游戏: 两人玩家,给定状态之间转移规则,每个人轮流移动,最终得出胜负. 设P为必败点,N为必胜点 精髓: 能到达必败点的所有点都为必胜点,一般解题都是先找到一个必败点,然后由此点推必胜点 有的题 ...
- 算法进阶面试题07——求子数组的最大异或和(前缀树)、换钱的方法数(递归改dp最全套路解说)、纸牌博弈、机器人行走问题
第一题 给定一个数组,求子数组的最大异或和. 一个数组的异或和为,数组中所有的数异或起来的结果. 简单的前缀树应用 暴力方法: 先计算必须以i结尾的子数组的异或和,然后再计算机i+1的,以此类推... ...
- “胜兵先胜而后求战,败兵先战而后求胜”—如何通过系统分析师考试
2007年下半年的系统分析师考试终于以54.53.45的成绩通过了,2月28号我去领取证书的时候偶然发现我的成绩还在2007年下半年系分全国前50名里.从最初的尝试到几经失败后对考试的认真研究,其中我 ...
- “胜兵先胜而后求战,败兵先战而后求胜”—系统分析师考试经验谈
转自-->"胜兵先胜而后求战,败兵先战而后求胜"-系统分析师考试经验谈 2007年下半年的系统分析师考试终于以54.53.45的成绩通过了,2月28号我去领取证书的时候偶然发 ...
- 【算法-Java实现】 换钱的方法数(暴力递归法)
[算法-Java实现] 换钱的方法数(暴力递归法) 文章目录 [算法-Java实现] 换钱的方法数(暴力递归法) 一.问题描述: 二.问题解答: **举例:** **思路:==暴力递归==** 三.算 ...
- 【 HDU - 1525 】Euclid's Game(较难找规律,玄学博弈,分析必败点必胜点)
题干: Two players, Stan and Ollie, play, starting with two natural numbers. Stan, the first player, su ...
最新文章
- [Bug]当IDENTITY_INSERT设置为OFF时,不能为表“xx”中的标识列插入显示的值
- POJ 3498 March of the Penguins
- 旋转图像Python解法
- Linux系统下UDP发送和接收广播消息小例子
- BestCoder Round #86 1002 HDU 5805 ——NanoApe Loves Sequence
- 让你的单细胞数据动起来!|iCellR(二)
- OUTLOOK无法解析Exchange通讯录
- java复习系列[1] - Java 基础
- 基础篇5-python基本数据类型讲解1.1
- 跨浏览器的元素的竖直排列
- 递归与二叉树_leetcode235
- 5.性能之巅 洞悉系统、企业与云计算 --- 应用程序
- JS学习总结(12)——Math对象/时间对象
- 测试开发工程师成长日记001 - 敏捷测试、CI/CD/CT、DecOps的一些介绍
- caj文件添加endnote_endnote怎么导入caj
- PCA降维-原理(一)
- python批量下载模库网图片
- DDK2000与VC6
- Java——将一个正整数分解质因数
- Apache/.htaccess的Order Allow,Deny 详解