【蓝桥杯集训·每日一题】AcWing 4005. 取石子游戏
创始人
2025-05-30 01:56:48
0

文章目录

  • 一、题目
    • 1、原题链接
    • 2、题目描述
  • 二、解题报告
    • 1、思路分析
      • 1. 正解
      • 2. 打表找规律
    • 2、时间复杂度
    • 3、代码详解
  • 三、知识风暴
  • 博弈论

一、题目

1、原题链接

4005. 取石子游戏

2、题目描述

Alice 和 Bob 正在玩一个取石子游戏。

共有 n 个石子,双方轮流采取行动。

每当轮到一人行动时,该名玩家需要从石子堆中取走恰好 1 或 2 或 k 个石子。

如果轮到一人行动时,已经没有石子可取,则该名玩家失败。

已知,双方都会采取最优策略,且 Alice 率先行动。

请问,最终谁将获胜

输入格式

第一行包含整数 T,表示共有 T 组测试数据。

每组数据占一行,包含两个整数 n,k。

输出格式

每组数据输出一行结果,如果 Alice 获胜,则输出 Alice,否则输出 Bob

数据范围

前三个测试点满足,1≤T≤10
所有测试点满足,1≤T≤100,0≤n≤109,3≤k≤109

输入样例

4
0 3
3 3
3 4
4 4

输出样例

Bob
Alice
Bob
Alice

二、解题报告

1、思路分析

思路来源:y总讲解视频
y总yyds

1. 正解

  • 先手必胜态:可以走到一个必败态。
  • 先手必败态:走不到任何一个必败态。

直接给出结论:具体证明过程见y总讲解视频

  1. k不是3的倍数
    1. n不是3的倍数,先手必胜。
    2. n是3的倍数,先手必败。
  2. k是3的倍数,计算n%(k+1)的余数r
    1. r和k相等或r不是3的倍数,先手必胜。
    2. r

2. 打表找规律

2、时间复杂度

时间复杂度为O(n)

3、代码详解

正解

#include 
using namespace std;
int T,n,k;
int main(){cin>>T;while(T--){cin>>n>>k;if(k%3){if(n%3) cout<<"Alice"<int r=n%(k+1);if(r==k||r%3) cout<<"Alice"<

打表找规律

#include 
using namespace std;
const int N=110;
int n,k;
int f[N];
int main(){cin>>n>>k;f[0]=0;for(int i=1;i<=n;i++){int d[]={1,2,k};for(int j=0;j<3;j++){int x=d[j];if(i>=x&&!f[i-x]) f[i]=1;}}for(int i=0;i<=n;i++) cout<

三、知识风暴

博弈论

相关内容

热门资讯

城商行史上首次,宁夏银行入局省... 湘财Plus获悉,监管机构已正式批复宁夏银行受让异地民营股东所持宁夏黄河农商行股份,交易完成后该行持...
Momenta(06880.H... 6月29日早间,Momenta发布上市文件,正式启动招股。上市文件链接:https://www1.h...
全国高校版图扩容:两年新增84... 本文来源:时代周报 作者:李杭随着各地高考成绩陆续公布,志愿填报进入关键阶段。对于考生和家长来说,选...
人形机器人卡在电池上:主流产品... 本文来源:时代周报 作者:朱成呈人性机器人正加快迈向商业化,从业者不断向外界描绘着行业的远大前景,与...
千万用户参与!江苏银行“苏超”... 盛夏六月,赛场燃情不息!刚刚过去的端午假期,2026江苏省城市足球联赛(“苏超”)第十周的四场对决在...
500亿龙头,“一”字涨停 5... 6月29日早盘,氟化工龙头 多氟多 集合竞价迎来“一”字涨停,涨停板上逾45万手封单,最新市值为54...
巨力索具巨额罚单落地,杨子家族... 刚刚过去的周末,巨力索具(002342.SZ)公告称,收到中国证监会河北监管局出具的《行政处罚事先告...
量涨价跌,净利缩水四成,甘李药... 本报(chinatimes.net.cn)记者张斯文 于娜 北京报道前不久,甘李药业股份有限公司(下...
“光纤三剑客”大跌 “光纤三剑... 上周五,光纤概念大跌,“光纤三剑客”长飞光纤、中天科技、亨通光电集体大跌。今天早盘,光纤概念再度大跌...
祥鑫科技:液冷散热产品不属于公... 新京报贝壳财经讯 6月28日,祥鑫科技发布股票交易异常波动公告称,公司在6月25日、6月26日连续2...