(AcWing) 拆分-Nim游戏

chatgpt/2023/9/24 2:20:55

给定 n 堆石子,两位玩家轮流操作,每次操作可以取走其中的一堆石子,然后放入两堆规模更小的石子(新堆规模可以为 0,且两个新堆的石子总数可以大于取走的那堆石子数),最后无法进行操作的人视为失败。

问如果两人都采用最优策略,先手是否必胜。

输入格式

第一行包含整数 n。

第二行包含 n 个整数,其中第 i 个整数表示第 i 堆石子的数量 ai。

输出格式

如果先手方必胜,则输出 Yes

否则,输出 No

数据范围

1≤n,ai≤100

输入样例:

2
2 3

输出样例:

Yes
#include<iostream>
#include<unordered_set>
#include<cstring>
using namespace std;const int N = 110;
int f[N]; //记录每个状态的sgint sg(int x)
{if(f[x]!=-1) return f[x];unordered_set<int> S;//列举出每堆石子可以分成哪几种比它小的两堆石子for(int i=0;i<x;i++){for(int j=0;j<=i;j++){//定理:sg(i,j) = sg(i)^sg(j)S.insert(sg(i)^sg(j));}}for(int i=0;;i++) if(!S.count(i)) return f[x] = i;
}int main()
{int n;cin>>n;int res = 0;memset(f,-1,sizeof f);for(int i=0;i<n;i++){int num;cin>>num;res^=sg(num);}if(res) cout<<"Yes"<<endl;else cout<<"No"<<endl;}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-5312990.html

如若内容造成侵权/违法违规/事实不符,请联系郑州代理记账网进行投诉反馈,一经查实,立即删除!

相关文章

【前缀和】560.和为 K 的子数组

Halo&#xff0c;这里是Ppeua。平时主要更新C&#xff0c;数据结构算法&#xff0c;Linux与ROS…感兴趣就关注我bua&#xff01; 和为K的子数组 题目:示例:题解&#xff1a;解法一:解法二: 题目: 示例: 题解&#xff1a; 解法一: 暴力解法:我们很容易想到通过两个for循环去遍…

pytorch实现一个简单的CNN

import torch import torch.nn as nn import torch.optim as optim import torchvision import torchvision.transforms as transforms# Define the CNN model class CNN(nn.Module):def __init__(self):super(CNN, self).__init__()self.conv1 nn.Conv2d(1, 32, 3, padding1

7月31日每日两题

第一题:再解炸弹人 小哼最近爱上了“炸弹人”游戏。你还记得在小霸王游戏机上的炸弹人吗?用放置炸弹的方法来消灭敌人。需将画面上的敌人全部消灭后,并找到隐藏在墙里的暗门才能过关。 现在有一个特殊的关卡如下。你只有一枚炸弹,但是这枚炸弹威力超强(杀伤距离超长,可…

【C++】初阶 --- 引用(超级详细版!!!)

文章目录 &#x1f36a;一、引用的概念&#x1f36a;二、引用的特性&#x1f37f;1、引用在定义时必须初始化&#x1f37f;2、一个变量可以有多个引用&#x1f37f;3、引用一旦引用一个实体&#xff0c;再不能引用其他实体 &#x1f36a;三、常引用(被const 修饰的引用)&#x…

微信小程序tab加列表demo

一、效果 代码复制即可使用&#xff0c;记得把图标替换成个人工程项目图片。 微信小程序开发经常会遇到各种各样的页面组合&#xff0c;本demo为list列表与tab组合&#xff0c;代码如下&#xff1a; 二、json代码 {"usingComponents": {},"navigationStyle&q…

HEVC 速率控制(码控)介绍

视频编码速率控制 速率控制&#xff1a; 通过选择一系列编码参数&#xff0c;使得视频编码后的比特率满足所有需要的速率限制&#xff0c;并且使得编码失真尽量小。速率控制属于率失真优化的范畴&#xff0c;速率控制算法的重点是确定与速率相关的量化参数&#xff08;Quantiz…

ESP32(MicroPython) 四足机器人(五)功能补充

本次更新增加了前后倾斜&#xff08;每次动作交换前部和后部高度&#xff09;、蹲起与抬脚动作&#xff0c;均位于用于连续执行动作的function函数中&#xff0c;但实测抬脚动作需要先启动function函数的另一项功能才能正常开启&#xff0c;代码检查无误&#xff0c;应该是Micr…

官方实锤!AMD真的已经有了大小核:不搞Intel那一套

Intel 12代酷睿开始引入大小核混合架构&#xff0c;多核跑分提升立竿见影&#xff0c;在游戏、渲染等场景中也有很好的辅助作用&#xff0c;但因为大核心、小核心基于完全不同的架构&#xff0c;需要复杂的系统、软件调度配合&#xff0c;也直接导致失去了AVX-512指令集。 AMD也…
推荐文章