news 2026/5/25 22:08:15

小A取石子【牛客tracker 每日一题】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
小A取石子【牛客tracker 每日一题】

小A取石子

时间限制:1秒 空间限制:32M

网页链接

牛客tracker

牛客tracker & 每日一题,完成每日打卡,即可获得牛币。获得相应数量的牛币,能在【牛币兑换中心】,换取相应奖品!助力每日有题做,丰盈牛币日益多!

题目描述

A AA也听说了取石子这个游戏,也决定和小B BB一起来玩这个游戏。总共有n nn堆石子,双方轮流取石子,每次都可以从任意一堆中取走任意数量的石子,但是不可以不取。规定谁先取完所有的石子就获胜。但是小A AA实在是太想赢了,所以在游戏开始之前,小A AA有一次机会,可以趁小B BB不注意的时候选择其中一堆石子拿走其中的k kk个,当然小A AA也可以选择不拿石子。小A AA先手。双方都会选择最优的策略,请问在这样的情况下小A AA有没有必胜的策略,如果有输出Y E S YESYES,否则就输出N O NONO

输入描述:

一行两个整数N , K N,KN,K,表示分别有N NN堆石子以及小A AA可以拿走的石子个数k kk
接下来N NN个整数表示每一堆的石子个数a i a_iai

1 ≤ n ≤ 10 5 ; 1 ≤ a i ≤ 10 5 ; 0 ≤ k ≤ 10 5 1≤n≤10^5; 1≤a_i≤10^5; 0≤k≤10^51n105;1ai105;0k105

输出描述:

一行一个结果表示小A AA是否有必胜策略,如果有则输出Y E S YESYES,否则输出N O NONO

示例1

输入:

3 2 1 1 1

输出:

YES

示例2

输入:

2 0 5 5

输出:

NO

解题思路

本题基于经典尼姆博弈的核心规则,先手必胜的条件是所有石子堆数量的异或和不为0 00;首先计算所有石子堆的总异或和n u m numnum,若初始n u m ≠ 0 num≠0num=0,小A AA本就有必胜策略,直接标记为可行;随后遍历每一堆石子,若当前堆石子数a [ i ] ≥ k a[i]≥ka[i]k,计算将该堆减少k kk个后的新总异或和n u m a [ i ] ( a [ i ] − k ) num^a[i]^(a[i]-k)numa[i](a[i]k),只要存在任意一堆修改后异或和不为0 00,说明能通过此次操作获得必胜态,同样标记可行;遍历完成后,若标记为可行则输出Y E S YESYES,否则输出N O NONO。该方法时间复杂度为O ( n ) O(n)O(n),完美适配n ≤ 10 5 n≤10^5n105的规模,依托尼姆博弈定理结合单次修改枚举,精准判断小A AA是否存在必胜策略。

代码内容

#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;typedefunsignedlonglongull;typedefpair<ll,ll>pii;constll p=1e9+7;constll N=2e6+10;intmain(){ll n,k,d;cin>>n>>k;ll num=0;boolok=0;vector<ll>a(n+1);vector<ll>pre(n+1,0);for(ll i=1;i<=n;i++){cin>>a[i];num^=a[i];pre[i]=pre[i-1]^a[i];}if(num)ok=1;for(ll i=1;i<=n;i++){if(a[i]>=k){if(num^a[i]^(a[i]-k))ok=1;}}if(ok)cout<<"YES\n";elsecout<<"NO\n";return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/22 14:46:27

STM32固件库配置LED灯亮灭操作指南

从点亮第一盏灯开始&#xff1a;深入理解STM32 GPIO控制与固件库实战你有没有过这样的经历&#xff1f;手握一块崭新的STM32开发板&#xff0c;烧录完代码后却不见板载LED闪烁——明明代码看起来没问题&#xff0c;为什么灯就是不亮&#xff1f;别急&#xff0c;这几乎是每个嵌…

作者头像 李华
网站建设 2026/5/20 11:39:49

自然语言分割万物|基于SAM3大模型镜像快速实践

自然语言分割万物&#xff5c;基于SAM3大模型镜像快速实践 1. 引言&#xff1a;从交互式分割到概念提示分割的演进 图像分割作为计算机视觉的核心任务之一&#xff0c;长期以来依赖于精确的几何输入&#xff08;如点击、框选&#xff09;或大量标注数据进行训练。然而&#x…

作者头像 李华
网站建设 2026/5/22 16:16:44

5分钟玩转Cute_Animal_For_Kids_Qwen_Image:儿童可爱动物图片一键生成

5分钟玩转Cute_Animal_For_Kids_Qwen_Image&#xff1a;儿童可爱动物图片一键生成 1. 引言 1.1 儿童内容创作的新需求 在数字教育和亲子互动日益普及的今天&#xff0c;高质量、安全且富有童趣的视觉内容成为家长和教育工作者的核心需求。传统的图像素材库虽然丰富&#xff…

作者头像 李华
网站建设 2026/5/20 10:55:18

Qwen3-Embedding-4B性能调优:GPU利用率提升实战手册

Qwen3-Embedding-4B性能调优&#xff1a;GPU利用率提升实战手册 1. 背景与挑战&#xff1a;向量服务部署中的性能瓶颈 随着大模型在检索增强生成&#xff08;RAG&#xff09;、语义搜索和多模态理解等场景的广泛应用&#xff0c;高效稳定的文本嵌入服务成为系统性能的关键环节…

作者头像 李华
网站建设 2026/5/25 3:45:55

IndexTTS-2-LLM RESTful API对接指南:开发实战教程

IndexTTS-2-LLM RESTful API对接指南&#xff1a;开发实战教程 1. 引言 1.1 学习目标 本文旨在为开发者提供一份完整的 IndexTTS-2-LLM 模型 RESTful API 接入实战教程。通过本教程&#xff0c;您将掌握&#xff1a; 如何调用 IndexTTS-2-LLM 提供的语音合成接口构建 HTTP …

作者头像 李华
网站建设 2026/5/20 10:54:47

Citra模拟器零基础入门:5分钟实现电脑畅玩3DS游戏

Citra模拟器零基础入门&#xff1a;5分钟实现电脑畅玩3DS游戏 【免费下载链接】citra 项目地址: https://gitcode.com/GitHub_Trending/ci/citra 还在为无法重温任天堂3DS经典游戏而烦恼吗&#xff1f;Citra模拟器为你打开了一扇通往怀旧游戏世界的大门。这款强大的开源…

作者头像 李华