博弈论 。。。

news/2024/11/25 22:30:07/

先手必胜状态:可以走到某一个必败状态(我走完之后,对手是必败状态)
先手必败状态:走不到任何一个必败状态(我走完之后,对手是必胜状态)

 

x的最高位1假设是k位,那么 一定有一个 ai 的k位为1,那么ai ^ x 之后第k位一定为0。那么一定有 ai ^ x < ai 所以可以拿走 ai-( ai ^ x)个,那么这堆就剩下 ai-[ ai-( ai ^ x)] ,即 ai ^ x 个。

异或结果 x = 0 时,我先手拿,留给别人的状态一定不是0,那么我必输。

异或结果 x = 1 时,我先手拿,留给别人的状态一定是0 ,那么我必赢。

就好像,拿石子,两堆石子数不一样,此时异或结果为1,我拿了让他们一样,抛给对方的异或结果就是0,那么我必赢。

891. Nim游戏 - AcWing题库


#include<iostream>
using namespace std;int main()
{int n;cin>>n;int res=0;while(n--){int x;cin>>x;res^=x;}if(res) cout<<"Yes"<<endl;else cout<<"No"<<endl;
}

SG函数 到不了的点的最小自然数值

SG(x)=0 必败     SG(x)!=0 必胜

任何一个非0的状态都可以到0  任何一个0的状态都不能到0.

我们先走 可以保证对手永远是0 我们永远是非0 终点状态是0 对手必败.

893. 集合-Nim游戏 - AcWing题库 


#include<iostream>
#include<cstring>
#include<algorithm>
#include<unordered_set>
using namespace std;const int N = 110 , M = 10010;
int n,m;
int f[M],s[N];int sg(int x)
{if(f[x]!=-1) return f[x];unordered_set<int> S;for(int i=0;i<m;i++){int sum=s[i];if(x>=sum) S.insert(sg(x-sum));}for(int i=0;;i++)if(!S.count(i))return f[x]=i;
}int main()
{cin >> m;for(int i=0;i<m;i++) cin>>s[i];cin>>n;memset(f,-1,sizeof f);int res=0;for(int i=0;i<n;i++){int x;cin>>x;res^=sg(x);}if(res) puts("Yes");else puts("No");return 0;
}

 

 

 


http://www.ppmy.cn/news/543507.html

相关文章

上任半年股票涨四倍,展讯CEO做了啥?

2009年7月28日&#xff0c;展讯股票飙升23.5%达到每股3.15美元&#xff0c;距离展讯CEO李力游2月13日上任不到5个月时间&#xff0c;展讯股票已经由之前的不到8毛美金升幅接近四倍&#xff0c;李力游这几个月做了什么&#xff1f; 半年不到&#xff0c;展讯股票已经翻了四倍 老…

获香港证监会颁发牌照的弘量研究,正用智能投顾帮助金融机构降低成本,提升资产管理能力 By 藤子2017年10月09日 17:16 撰文 | 藤子 2015 年,雷春然和黄耀东都是在香港科技大学的

获香港证监会颁发牌照的弘量研究&#xff0c;正用智能投顾帮助金融机构降低成本&#xff0c;提升资产管理能力 By 藤子 2017年10月09日 17:16 撰文 | 藤子 2015 年&#xff0c;雷春然和黄耀东都是在香港科技大学的图书馆度过的&#xff0c;直到 2015 年底&#xff0c;他们入选香…

博弈论一 [ 巴什博奕 ]

首先&#xff0c;这基本是关于ACM博弈论得一系列文章吧。 今天先讲一个最简单得博弈——巴什博奕。 其游戏规则是这样的: 有一堆n个石子&#xff0c;两个足够聪明的人玩&#xff0c;每个人可以去1&#xff5e;m个石子&#xff0c;取到最后一个石子为胜。 比如 n7 ,m 3 那么…

博 弈

1.题目引入&#xff1a; Alice 和 Bob 正在玩一个取石子游戏。 共有 nn 个石子&#xff0c;双方轮流采取行动。 每当轮到一人行动时&#xff0c;该名玩家需要从石子堆中取走恰好 11 或 22 或 kk 个石子。 如果轮到一人行动时&#xff0c;已经没有石子可取&#xff0c;则该名玩家…

TAISAW钛硕|TST嘉硕科技晶体振荡器在军事、航空航天中以及车载有什么应用?

TAISAW钛硕|TST嘉硕科技晶体振荡器在军事、航空航天中有什么应用&#xff1f; 晶体振荡器在军事和航空航天中的应用 Taisaw&#xff5c;台灣上市企业嘉碩科技&#xff5c;Taisaw&#xff5c;钛硕&#xff5c;台湾TST嘉硕 晶体振荡器用于军事和航空航天&#xff0c;组成一个有…

按键精灵使用乐玩插件(免费大漠插件)

大漠插件会按键精灵的基本都接触过,但是3.1233之后都是收费的,虽然很便宜,但是完全免费的还是更香的.这里给大家介绍的就是乐玩插件,模仿大漠插件制作的,经过几个月的使用,个人感觉比较好用,推荐一下.这篇文章讲解pc按键精灵如何使用乐玩插件. 乐玩插件8.17下载地址 不多废话,先…

魔兽War3按键精灵Ⅱ(2012-9-4)

软件名称&#xff1a;魔兽War3按键精灵Ⅱ 软件授权&#xff1a;免费软件 应用平台&#xff1a;Windows XP/2003/Vista/2008/7/2008R2/8 所有版本 软件作者&#xff1a;秋忆 作者博客&#xff1a;http://qiuyi21.cnblogs.com 软件简介&#xff1a;专为魔兽War3设计的按键增强工具…

Python实现改键精灵控制西游释厄传

""" Python实现模拟按键和改键精灵,用以控制西游释厄传,亲测有效. 版本:[NABULA]超能西游系列,开通无限能量,选择孙悟空 VK_CODE:虚拟键码 参考: https://www.cnblogs.com/Evan-fanfan/p/11097519.html https://blog.csdn.net/wang8978/article/details/5290004…