LightOJ1186——Incredible Chess(nim游戏)

简介: LightOJ1186——Incredible Chess(nim游戏)

LightOJ1186——Incredible Chess

题意:


n*n的棋盘,每一列有一个黑棋子和一个白棋子,只能上下移动并且不能越过棋子,先手为白棋,问最后谁能够赢。


思路:


upc前几天做过的。


首先可以知道的是有效区域为每一列中两个棋子中间的区域,因为如果向最上面或是最下面走对输赢是不会产生影响的。


抽象一下游戏过程就是有n个间隔,每个人都可以走任意步,就是nim游戏嘛。


异或值为0,先手必败。


代码:

#include<bits/stdc++.h>
using namespace std;
const int maxn=510;
int a[maxn],b[maxn];
int main(){
  int T,Case=1;
  cin>>T;
  while(T--){
    int n;cin>>n;
    for(int i=1;i<=n;i++) cin>>a[i];
    for(int i=1;i<=n;i++) cin>>b[i];
    int res=0;
    for(int i=1;i<=n;i++)
      res^=(b[i]-a[i]-1);
    cout<<"Case "<<Case++<<":";
    if(res) printf(" white wins\n");
    else puts(" black wins");
  }
  return 0;
}
目录
相关文章
|
1月前
|
人工智能 决策智能
博弈论:Nim游戏
博弈论:Nim游戏
|
1月前
【力扣】292. Nim 游戏
【力扣】292. Nim 游戏
|
1月前
|
C++
Nim 游戏(C++)
Nim 游戏(C++)
44 0
|
11月前
|
机器学习/深度学习 决策智能
博弈论-nim 游戏
博弈论-nim 游戏
127 0
博弈论-nim 游戏
|
11月前
|
决策智能
SG函数Nim游戏博弈论
SG函数Nim游戏博弈论
55 0
SG函数Nim游戏博弈论
|
人工智能 决策智能
Nim游戏——简单博弈论
Nim游戏——简单博弈论
95 0
Nim游戏——简单博弈论
|
索引
Nim教程【十】
openarray类型 注意:openarray类型只能用于参数 固定大小的数组虽然性能不错,但过于呆板,使用取来不是很方便 对于一个方法来说,传入参数如果是一个数组,最好是不要限制数组的长度 也就是说,方法应该能够处理不同大小的数组 openarray类型就是为了满足这样的要求而设计...
1089 0