当前位置: 首页 > news >正文

打卡信奥刷题(3145)用C++实现信奥题 P7656 [BalticOI 1996] A NUMBER GAME (Day 2)

P7656 [BalticOI 1996] A NUMBER GAME (Day 2)

题目描述

下面是一个游戏。首先我们赋给变量n nn和变量m mm整数值。玩家 A 和 B 开始轮流移动(A 先)。每次移动都会选择一个正整数k ≤ min ⁡ { m , n } k \le \min \lbrace m,n \rbracekmin{m,n},这会将变量n nn的值减少k kk。但是,不允许使用一个或另一个玩家在之前的移动中已经使用的数字。当其中一名玩家无法移动时,游戏结束。 走最后一步的玩家是赢家。
请编写一个程序,说明哪个玩家有获胜策略。

输入格式

第一行包含两个整数n nnm mm,用空格分隔。

输出格式

第一行:谁有获胜策略;接下来的行:A 的所有可能的第一步动作依次递增,然后是单词 “winning” 或 B 的一个获胜答案。

输入输出样例 #1

输入 #1

3 2

输出 #1

B wins 1 2 2 1

输入输出样例 #2

输入 #2

7 4

输出 #2

A wins 1 winning 2 winning 3 4 4 3

说明/提示

数据规模与约定

对于100 % 100 \%100%的数据,0 < n ≤ 70 0 < n \le 700<n700 < m ≤ 20 0 < m \le 200<m20

分值说明

本题分值按 BOI 原题设置,满分40 4040

题目说明

来源于 Baltic Olympiad in Informatics 1996 的 Day 2:A NUMBER GAME。
由 @求学的企鹅 翻译整理。

C++实现

#include<iostream>usingnamespacestd;intn,m;intmem[1<<21|1];//=0表示失败;非零数字表示需要选择mem[x]就会必赢boolvis[1<<21|1];intdfs(intx){if(vis[x])returnmem[x];intcurn=n;for(inti=1;i<=m;i++){if(x>>i&1){curn-=i;}}for(inti=min(curn,m);i>=1;i--){if(x>>i&1)continue;intres=dfs(x|(1<<i));if(res==0){vis[x]=true;returnmem[x]=i;}}vis[x]=true;returnmem[x]=0;}intmain(){cin>>n>>m;if(dfs(0)){cout<<" A wins\n";}else{cout<<" B wins\n";}for(inti=1;i<=m&&i<=n;i++){if(i<=9)cout<<" ";cout<<i<<" ";intres=dfs(1<<i);if(res==0){cout<<"winning"<<"\n";}else{cout<<res<<"\n";}}return0;}

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

http://www.jsqmd.com/news/677699/

相关文章:

  • 在Windows上安装安卓应用的终极指南:APK Installer完整教程
  • Ubuntu 18.04编译PCL报错libGL.so缺失?别慌,手把手教你用apt-file定位并修复动态库链接
  • 市面上口碑好的GEO全托管公司 - 小张小张111
  • 有限状态机(FSM)原理与应用实例解析
  • 【IEEE出版、往届已EI、Scopus双检索、线下校内召开】第二届人工智能与数字伦理国际学术会议 (ICAIDE 2026)
  • 实时系统调度算法:RM与EDF原理与应用对比
  • 零基础AI视频背景去除教程:3步制作专业透明视频
  • 终极免费AI图片放大修复工具Real-ESRGAN-GUI完全指南:让模糊图片秒变高清!
  • 避坑指南:Element-UI Select下拉框样式为啥改不动?详解`popper-append-to-body`与样式穿透
  • slow disk / slow net / slow request / term - 小镇
  • 苏州来财物资回收:江苏中央空调回收电话多少 - LYL仔仔
  • Kubernetes Pod安全实战:别再让容器用root乱跑了,手把手教你配置SecurityContext的runAsUser
  • ComfyUI_essentials深度解析:AI图像处理节点的核心技术架构与实战应用
  • 2026年北京短视频代运营与AI内容创作:GEO精准获客全攻略 - 年度推荐企业名录
  • 合宙ESP32C3玩转LVGL:手把手解决TFT_eSPI横屏显示偏移(附中景园1.47/1.14屏配置)
  • 3大智能引擎:douyin-downloader如何重塑短视频采集工作流
  • 2026年CPPM培训权威机构推荐|采购党实测靠谱,避坑不踩雷,易拿证 - 众智商学课栈
  • FPGA与OpenMAX协同加速嵌入式多媒体系统
  • 如何快速掌握Discord隐藏频道查看技巧:ShowHiddenChannels完整指南
  • Lattice FPGA烧录后程序‘丢’了?一文搞懂Bit调试和Jed固化的区别与实战
  • 如何告别网盘限速:八大网盘直链下载助手完整使用指南
  • windows 2016 模板机安装 CloudbaseInitSetup_x64
  • 2026 年重庆市九龙坡区汽车贴膜行业发展趋势白皮书 - 速递信息
  • 70GHz超高带宽示波器技术解析与应用实践
  • 开始写豆包的人机验证解除模块
  • 别光看GUI!手把手带你读懂Zynq PS SDK里ps7_init.c的PLL配置代码
  • 了解三指电爪抓取特性,推荐2026年合适的专业三指电爪生产厂商 - 品牌2026
  • 东莞盛世源机电设备:东莞发电机销售价格 - LYL仔仔
  • ZYNQ FPGA上AURORA 8B/10B多通道设计,如何解决‘GTPE2_COMMON不够用’的报错?
  • 6自由度KUKA机械臂智能抓取系统:基于ROS的完整架构设计与实施指南