AcWing 891:Nim游戏 ← SG函数 + Nim博弈
【题目来源】https://www.acwing.com/problem/content/893/【题目描述】给定 n 堆石子两位玩家轮流操作每次操作可以从任意一堆石子中拿走任意数量的石子可以拿完但不能不拿最后无法进行操作的人视为失败。问如果两人都采用最优策略先手是否必胜。【输入格式】第一行包含整数 n。第二行包含 n 个数字其中第 i 个数字表示第 i 堆石子的数量。【输出格式】如果先手方必胜则输出 Yes。否则输出 No。【输入样例】22 3【输出样例】Yes【数据范围】1≤n≤10^51≤每堆石子数≤10^9【算法分析】●Nim 博弈定理对于任意的 {a1, a2, a3, …, an}若Sa1⊕a2⊕a3⊕⋯⊕an的值不等于 0先手必胜记为 N-position先手必胜态。若 Sa1⊕a2⊕a3⊕⋯⊕an 的值等于 0先手必败记为 P-position先手必败态。● 标准 Nim 堆的 SG 函数值对于标准 Nim 的单堆石子状态 x 表示堆内有 x 枚石子。取走任意非零1~x枚石子可得状态 x 的后继集合为 {0, 1, …, x-1}。故sg(x)mex{sg(0), sg(1), …, sg(x-1)}。x1后继为 1-10后继 SG 集合为 {SG(0)}{0}则得 SG(1)mex{0}1 x2后继为 2-112-20后继 SG 集合为 {SG(1),SG(0)}{1,0}则得 SG(2)mex{0,1}2 x3后继为 3-123-213-30后继 SG 集合为 {SG(2),SG(1),SG(0)}{2,1,0}则得 SG(3)mex{0,1,2}3 x4后继为 4-134-224-314-40后继 SG 集合为 {SG(3),SG(2),SG(1),SG(0)}{3,2,1,0}则得 SG(4)mex{0,1,2,3}4 …… 猜想一般式SG(x)x。故数学归纳可得标准 Nim 堆的 SG 函数为sg(x)x。【算法代码一SG函数写法】#include bits/stdc.h using namespace std; int SG(int x) { return x; } int main() { int n,t0; cinn; while(n--) { int x; cinx; t^SG(x); } if(t0) coutNo; else coutYes; return 0; } /* in: 2 2 3 out: Yes */【算法代码二非SG函数写法】#include bits/stdc.h using namespace std; int main() { int n,t0; cinn; while(n--) { int x; cinx; t^x; } if(t0) coutNo; else coutYes; return 0; } /* in: 2 2 3 out: Yes */【参考文献】https://blog.csdn.net/hnjzsyjyj/article/details/158704426https://www.acwing.com/file_system/file/content/whole/index/content/12084580/

相关新闻

从DVWA靶场到实战:sqlmap自动化SQL注入全流程深度解析

从DVWA靶场到实战:sqlmap自动化SQL注入全流程深度解析

1. 项目概述:从靶场到实战的自动化渗透演练很多刚接触Web安全的朋友,都会从DVWA这个经典的漏洞靶场开始。它把各种常见漏洞,比如SQL注入、XSS、文件上传,都集成在一个环境里,并且贴心地设置了低、中、高三个安全等级&a…

2026/8/12 23:19:45 阅读更多 →
微信聊天记录永久保存:三步打造你的数字记忆保险库

微信聊天记录永久保存:三步打造你的数字记忆保险库

微信聊天记录永久保存:三步打造你的数字记忆保险库 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChatMs…

2026/8/12 23:19:45 阅读更多 →
UI自动化测试性能优化实战:从瓶颈诊断到架构提速

UI自动化测试性能优化实战:从瓶颈诊断到架构提速

1. 项目概述:为什么UI自动化测试也需要性能优化?做UI自动化测试的朋友,可能都经历过这样的场景:精心编写的测试脚本,在本地跑得飞快,一放到CI/CD流水线或者测试服务器上,就慢得像蜗牛爬。一个原…

2026/8/12 23:18:44 阅读更多 →

最新新闻

《Java面试85题图解版》第5题:String三兄弟(八股+源码双吃透)

《Java面试85题图解版》第5题:String三兄弟(八股+源码双吃透)

《Java面试85题图解版》第5题:String三兄弟(八股源码双吃透) 📌 我是折哥,《Java 100天进阶之路》正在连载中。 这43题速查是进阶系列的配套答案版——面试前刷这篇,面试后想挖源码看进阶。 两篇搭配&#…

2026/8/13 0:05:12 阅读更多 →
《Java面试85题图解版》第6题:final、finally、finalize(八股+源码双吃透)

《Java面试85题图解版》第6题:final、finally、finalize(八股+源码双吃透)

《Java面试85题图解版》第6题:final、finally、finalize(八股源码双吃透) 📌 我是折哥,《Java 100天进阶之路》正在连载中。 这43题速查是进阶系列的配套答案版——面试前刷这篇,面试后想挖源码看进阶。 两…

2026/8/13 0:05:12 阅读更多 →
怎么理解Paged KV 改善内存管理,但不减少每 token 的 KV 数据宽度

怎么理解Paged KV 改善内存管理,但不减少每 token 的 KV 数据宽度

这句判断非常精准,它点出了“系统工程管理”与“算法/架构压缩”在优化 KV Cache 时的本质区别。一图厘清两者的分工维度Paged KV(如 PagedAttention)架构/量化压缩(如 MLA、GQA、FP8)优化对象内存分配与调度机制&…

2026/8/13 0:03:11 阅读更多 →
3分钟学会音乐解锁:让加密音乐文件自由播放的终极方案

3分钟学会音乐解锁:让加密音乐文件自由播放的终极方案

3分钟学会音乐解锁:让加密音乐文件自由播放的终极方案 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web 项目地址: https…

2026/8/13 0:03:11 阅读更多 →
page KV-tail浪费核Prefix命中粒度

page KV-tail浪费核Prefix命中粒度

这两个概念都与大模型推理框架(如 vLLM、SGLang)在用 分页管理(PagedAttention) 分配显存时的“页/块(Block)大小”密切相关。1. Tail 浪费少(减少尾部内部碎片)背景:显存…

2026/8/13 0:03:11 阅读更多 →
传统Attention VS deepseek MLA

传统Attention VS deepseek MLA

普通 Attention(MHA/GQA)与 MLA(Multi-head Latent Attention)的核心差异在于 KV Cache 的存储与表达形态。标准 Attention 选择按头显式平铺存储 K/VK/VK/V 向量,而 MLA 通过“低秩联合压缩 RoPE 解耦”将 KV Cache …

2026/8/13 0:03:11 阅读更多 →

日新闻

Visual Studio新建项目解决方案为空:系统性排查与修复指南

Visual Studio新建项目解决方案为空:系统性排查与修复指南

1. 问题现象与本质剖析如果你是一位.NET开发者,或者正准备踏入这个领域,那么Visual Studio(后面简称VS)绝对是你绕不开的伙伴。但有时候,这个伙伴会跟你开一个不大不小的玩笑:你满怀期待地点击“创建新项目…

2026/8/13 0:00:09 阅读更多 →
长春建设厅网站:普通人买房办事必看的真实指南与避坑攻略

长春建设厅网站:普通人买房办事必看的真实指南与避坑攻略

说实话,每次提起“长春建设厅网站”这几个字,我心里都挺有感触的。不是因为它有多高大上,也不是因为那里藏着什么不可告人的秘密,恰恰相反,是因为它太“接地气”了,或者说,它是咱们普通人想要在这个城市好好生活、安稳买房时,必须得翻过的一座“数据山”。很多新朋友第…

2026/8/13 0:00:09 阅读更多 →
Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案

Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案

Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案 【免费下载链接】rdpwrap.ini RDPWrap.ini for RDP Wrapper Library by StasM 项目地址: https://gitcode.com/GitHub_Trending/rd/rdpwrap.ini 你是否曾为Windows家庭版无法支持多用户远程桌面…

2026/8/13 0:00:09 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/12 1:11:09 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/12 1:11:09 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/12 1:11:08 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/11 17:09:45 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/12 1:11:10 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/11 17:09:45 阅读更多 →