码迷,mamicode.com
首页 > 其他好文 > 详细

Aiiage Camp Day4 A Board game

时间:2018-02-23 13:26:35      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:str   ret   pos   尼姆博弈   while   空间   name   board   names   

题意

  N个D维空间点,每次可将一个点移动至字典序小于它且大于0的坐标处。Alice和Bob轮流移动,最先无法移动者输。

  1<=n,d<=100

 

题解

  每个维度相互独立。所以问题等价于D个尼姆博弈。

  将每个维度坐标-1异或起来,Bob胜利当且仅当所有异或值为0。

 1 #include <iostream>
 2 using namespace std;
 3 
 4 int a[110][110], num[110];
 5 
 6 int main()
 7 {
 8     int T;
 9     scanf("%d", &T);
10     while (T--)
11     {
12         int n, d;
13         scanf("%d%d", &n, &d);
14 
15         bool pd(0);
16         for (int i = 0; i < n; ++i)
17             for (int j = 0; j < d; ++j)
18                 scanf("%d", &a[i][j]);
19         for (int i = 0; i < d; ++i)
20         {
21             int yh(0);
22             for (int j = 0; j < n; ++j)
23                 yh ^= a[j][i] - 1;
24             if (yh != 0)
25                 pd = 1;
26         }
27         if (pd)
28             puts("Alice");
29         else
30             puts("Bob");
31     }
32     
33     return 0;
34 }

 

Aiiage Camp Day4 A Board game

标签:str   ret   pos   尼姆博弈   while   空间   name   board   names   

原文地址:https://www.cnblogs.com/aseer/p/8461371.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!