当前位置: 首页 > news >正文

南昌做网站和微信小程序的公司备案查询平台官网

南昌做网站和微信小程序的公司,备案查询平台官网,中国建设银行企业门户网站,单页网站制作 在线 支付N i m Nim Nim游戏 n n n堆物品,每堆有 a i a_i ai​个,每个玩家轮流取走任意一堆的任意个物品,但不能不取,取走最后一个物品的人获胜。 N i m Nim Nim游戏是一种经典的公平组合游戏。现在对它进行分析。 首先定义两个博弈中的状…

N i m Nim Nim游戏

n n n堆物品,每堆有 a i a_i ai个,每个玩家轮流取走任意一堆的任意个物品,但不能不取,取走最后一个物品的人获胜。

N i m Nim Nim游戏是一种经典的公平组合游戏。现在对它进行分析。

首先定义两个博弈中的状态:

  • 必胜状态:先手必胜的状态。
  • 必败状态:先手必败的状态。

对于这两个状态,我们可以知道:

  1. 没有后继状态的状态必然是必败状态。在这个状态中先手的是败者,因为他无法通过操作将游戏进行下去了。
  2. 一个状态是必胜状态当且仅当存在至少一个必败状态为它的后继状态。在这个状态中先手的人可以通过一次操作让对手在必败状态中先手。
  3. 一个状态的所有后继状态均为必胜状态,那么这个状态为必败状态。在这个状态中先手,无法避免让对方在必胜状态中先手。

回到 N i m Nim Nim游戏:

N i m Nim Nim游戏中,一个很显然的必败状态就是所有物品堆中物品的数量都为 0 0 0,即 [ 0 , 0 , . . . , 0 ] [0, 0, ..., 0] [0,0,...,0]。这个状态也是最终态。可以知道,在最终态时,所有物品堆中的物品数量的异或和是等于 0 0 0的,我们不妨假设状态和物品数量的异或和有关系。

证明有关:

一个非 0 0 0的异或和,产生最高位的 1 1 1总需要有奇数个数字来提供对应位置的 1 1 1。而我们为了消去这个 1 1 1,可以选择任意一个提供这个 1 1 1的数字,使其二进制中该位上的数字为 0 0 0,而且修改最高位为 0 0 0后得到的数字永远小于原来的数字,也就是说,我们可以任意修改其他位上的数字从而使得全部物品数量的异或和为 0 0 0

而对于一个为 0 0 0的异或和,假设存在一个 b ≠ a i b \not = a_i b=ai使得我们将 a i a_i ai修改为 b b b后,异或和还是为 0 0 0,则有 0 ⊕ a i ⊕ b = 0 0 \oplus a_i \oplus b = 0 0aib=0,为了使这个式子成立 b b b就要等于 a i a_i ai,与假设违背。

换句话说,对于一个物品数量异或和不为 0 0 0的状态,我们可以通过一次操作将物品数量的异或和修改为 0 0 0,而对于一个物品数量异或和为 0 0 0的操作,我们无法只通过一次操作保持物品数量的异或和不变。

从上可以得出,在 N i m Nim Nim游戏中,物品数量异或和为 0 0 0的状态是必败状态,物品数量异或和不为 0 0 0的状态是必胜状态。

接下来看例题:

【模板】Nim 游戏

【模板】Nim 游戏

题目描述

甲,乙两个人玩 nim 取石子游戏。

nim 游戏的规则是这样的:地上有 n n n 堆石子(每堆石子数量小于 1 0 4 10^4 104),每人每次可从任意一堆石子里取出任意多枚石子扔掉,可以取完,不能不取。每次只能从一堆里取。最后没石子可取的人就输了。假如甲是先手,且告诉你这 n n n 堆石子的数量,他想知道是否存在先手必胜的策略。

输入格式

本题有多组测试数据。

第一行一个整数 T T T T ≤ 10 T\le10 T10),表示有 T T T 组数据

接下来每两行是一组数据,第一行一个整数 n n n,表示有 n n n 堆石子, n ≤ 1 0 4 n\le10^4 n104

第二行有 n n n 个数,表示每一堆石子的数量.

输出格式

T T T 行,每行表示如果对于这组数据存在先手必胜策略则输出 Yes,否则输出 No

样例 #1

样例输入 #1

2
2
1 1
2
1 0

样例输出 #1

No
Yes

根据刚才的推论,我们只需要计算所有数字的异或和,就可以得出先手时处在必胜状态还是必败状态。用 O ( n ) O(n) O(n)的复杂度即可得出最后的胜负结果。

#include<bits/stdc++.h>
using namespace std;void solve()
{int n; cin >> n;int ans = 0;for(int i = 1; i <= n; ++i){int x; cin >> x;ans ^= x;}cout << (ans ? "Yes" : "No") << '\n';
}int main()
{ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);int _; cin >> _;while(_--) solve();return 0;
}
http://www.dinnco.com/news/25061.html

相关文章:

  • 集团官方网站建设方案googleplaystore
  • 制作公司官网西安重庆网站seo教程
  • 免费企业建站国际新闻最新消息今天军事新闻
  • 那个网站可以兼职做效果图优化网站排名公司
  • wordpress和织梦信阳seo
  • 物流网站和数据库建设3d建模培训学校哪家好
  • wordpress get_post_mime_type成都seo优化排名推广
  • 下载网站上的表格 怎么做站长素材网站官网
  • 海洋网络提供网站建设年轻人不要做网络销售
  • 手机网站建设免费空间网站推广优化服务
  • 个人做论坛网站需要哪些备案媒体发稿推广
  • 男朋友说是做竞彩网站维护的品牌推广方案怎么写
  • 南通制作手机网站深圳网络推广外包
  • 太原网站制作价格如何做网站推广广告
  • 专业外贸网站制作公司bt磁力在线种子搜索神器
  • 做推广任务的网站有哪些厦门seo外包服务
  • 提供商城网站建设平台营销
  • 江门网站建设联系电话十大最靠谱教育培训机构
  • 成都手机网站建设哪seo每天一贴博客
  • 做h5页面的网站推广网站的方法有哪些
  • 厦门外发加工网seo推广公司
  • 长沙疫情最新情况今天seo外链推广工具下载
  • 大连做网站的公司百度seo服务
  • 巴中手机网站建设全球搜效果怎么样
  • 手机制作网页appseo网站排名优化价格
  • 广州seo群苏州网站seo优化
  • 郑州网站建设公司qq如何进行推广
  • 想做机械加工和橡胶生意怎么做网站百度信息流怎么做效果好
  • 怎么设立网站赚广告费南宁网站推广大全
  • 乐清网站建设网站建设国内时事新闻