2023河南萌新联赛第(五)场:郑州轻工业大学--买爱心气球

news2024/9/27 21:26:51

题目链接:A-买爱心气球_2023河南萌新联赛第(五)场:郑州轻工业大学 (nowcoder.com)

题目描述

Alice 和 Bob 是一对竞技编程选手,他们路过了一家气球店,发现有 m 个大爱心气球和 n 个小爱心气球。他们决定玩一个游戏,游戏规则如下:

  1. Alice 先手拿球,两人轮流进行。
  2. 每个人在自己的回合只能选择一种类型的气球。
  3. 对于大爱心气球,每次拿取可以选择取 5 个、2 个或 1 个。
  4. 对于小爱心气球,每次拿取可以选择任意数量 (不含0个)。

游戏终止的条件是当所有的气球都被拿取完毕,最后一个球被拿取的人即为获胜者。

假设两人都足够聪明并采取最优策略,请问谁将获胜?

输入描述:

本题包含多组数据

第一行包含一个正整数 ,代表测试用例的组数。

对于每组数据:

输入一行包含两个正整数 。 

数据保证 m 和 n 不同时为 0

输出描述:

对于每组数据:

输出一行一个字符串,如果 Alice 获胜,输出 "Alice"

否则如果 Bob 获胜,输出 "Bob" (输出不含引号)。

示例1

输入

3

3 1

3 3

5 2

输出

Alice

Alice

Bob

思路:

这个题是一个博弈的问题,看不出规律就可以使用SG来解决,首先不会SG的可以先去学一手SG,很简单。

最后的必胜的终态有两种:

(1)当m一次就可以被取完,n已经没有的时间,必胜

(2)当m取完以后,n还有剩余就可以一次取完,必胜

SG函数:

int sg(int m,int n){
    if(mp.find({m,n}) != mp.end())//记忆化,会使的程序快很多
        return mp[{m,n}];
    set<int>st;//设立一个set来存他所有子状态的SG值
    if(m == 1 || m == 2 || m == 5){//必胜终态
        if(n == 0)return 1;
    }
    if(m == 0){//必胜终态
        if(n != 0)return 1;
    }
    //模拟取气球的过程,找出其所有的子状态
    for(int i = 1;i <= n;i++){
        st.insert(sg(m,n - i));
    }
    if(m >= 5){
        st.insert(sg(m - 5,n));
        st.insert(sg(m - 2,n));
        st.insert(sg(m - 1,n));
    }
    else if(m >=2){
        st.insert(sg(m - 2,n));
        st.insert(sg(m - 1,n));
    }
    else if(m >= 1){
        st.insert(sg(m - 1,n));
    }
    //找到最小的没有出现的值
    for(int i = 0;;i++){
        if(st.count(i) == 0){
            mp[{m,n}] = i;
            return i;
        }
    }
}

然后就可以固定m,跑n,就会很神奇的发现,其实n只有在1和2的情况下会出现先手必败的状态,在找一下规律会发现当m自增的时间,这个先手必败状态出现的 n 的值是循环出现的,先出现在1,在出现在2,在没有必败,在出现在1,出现在2......

所以这个规律就相当的明显了,当 m \% 3 = n  的时间是先手必败的状态

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

视频网站如何选择国外服务器?

​ 视频网站如何选择国外服务器? 地理位置&#xff1a;选择靠近目标用户群体的国外服务器位置是至关重要的。若用户主要集中在中国以外的地区&#xff0c;因您应选择位于用户所在地附近的服务商&#xff0c;以确保视频的传输速度。 带宽和速度&#xff1a;选择带宽足够且方便升…

一文详解2023 Smartbi V11系列新品发布会精彩看点

8月8日&#xff0c;2023 Smartbi V11系列新品发布会圆满落幕&#xff0c;在活动上重磅发布了全新升级的Smartbi V11版本&#xff0c;分别是Smartbi 一站式ABI平台&#xff08;Smartbi Insight V11&#xff09;和智慧数据运营平台&#xff08;Smartbi Eagle V11&#xff09;&…

前端下载文件

前端可以通过使用 JavaScript中的 fetch 或者 XMLHttpRequest 来下载文件&#xff1b; 使用fetch进行文件下载&#xff1b; fetch(http://example.com/file.pdf).then(response > response.blob()).then(blob > {// 创建一个临时的URL对象const url window.URL.create…

0101docker mysql8镜像主从复制-运维-mysql

1 概述 主从复制是指将主数据库的DDL和DML操作通过二进制日志传到从库服务器&#xff0c;然后在从库上对这些日志重新执行&#xff08;也叫重做&#xff09;&#xff0c;从而使得从库和主库的数据保持同步。 Mysql支持一台主库同时向多台从库进行复制&#xff0c;从库同时可以…

“精准学习嵌入式开发:明确目标,提升技能“

嵌入式领域涵盖广泛&#xff0c;不可能一次性掌握所有知识。因此&#xff0c;明确学习目标和方向非常重要。选择感兴趣且与职业发展相关的领域进行深入学习是明智之举。 嵌入式技术在不断发展&#xff0c;过去与现在存在差异。选择学习当前行业的主流技术和趋势是明智选择。掌…

【Linux进程篇】进程概念(2)

【Linux进程篇】进程概念&#xff08;2&#xff09; 目录 【Linux进程篇】进程概念&#xff08;2&#xff09;进程状态Linux对进程的说法linux中的信号 进程状态查看Z(zombie)——僵尸进程僵尸进程的危害 孤儿进程 进程优先级基本概念查看系统进程PRI &#xff08;优先级priori…

MyCat概述

1.MyCat概述 MyCat是阿里巴巴的产品&#xff0c;他是开源的、基于Java语言编写的MySQL数据库中间件。可以像使用mysql一样来使用mycat&#xff0c;对于开发人员来说根本感觉不到mycat的存在。 MyCat下载地址&#xff1a;http://dl.mycat.org.cn/ MyCat官网&#xff1a;http:/…

Django入门 - 路由Route的基本使用

文章目录 1. 直接访问视图函数&#xff0c;没有使用子路由2. 使用子路由 urls.py 我们一般叫它根路由 1. 直接访问视图函数&#xff0c;没有使用子路由 MyDjangoPro2\views.py 代码 from django.shortcuts import renderfrom django.http import HttpResponse# 视图函数Views …

Minio使用及整合起步依赖

说明&#xff1a;Minio是开源的对象存储服务器&#xff0c;相当于免费版的OSS&#xff0c;本文介绍在Linux环境下部署Minio服务器&#xff0c;并在SpringBoot中使用&#xff0c;最后将Minio的代码打包成一个起步依赖。 安装&启动 第一步&#xff1a;下载 首先&#xff0…

使用vue-grid-layout时 You may need an appropriate loader to handle this file type.

使用vue-grid-layout时 You may need an appropriate loader to handle this file type. node版本不匹配 我的node v14.16.0 vue-gride-layout 需要用 v 2.3.7的版本 卸载后重新安装即可

诺瓦星云面试汇总

1、C语言向一个内存地址写值&#xff0c; int main() {int value 42;int *ptr (int *)0x12345678; // Replace with the desired memory address*ptr value 2、申请释放内存 申请内存int *dynamicArray (int*)malloc(size *sizeof(int));释放内存 free(dynamicArray)…

哪些国家可以申请访问学者?

根据知识人网的小编了解&#xff0c;许多国家都允许外国学者申请访问并参与学术交流。这些国家提供了丰富多样的研究机会&#xff0c;有助于促进全球学术合作与知识交流。以下是一些允许申请访问学者的国家&#xff1a; 1. 美国&#xff1a;作为全球科研领域的重要一员&#xf…

远景智能PMO负责人严晓婷受邀为第十二届中国PMO大会演讲嘉宾

上海远景科创智能科技有限公司PMO负责人严晓婷女士受邀为由PMO评论主办的2023第十二届中国PMO大会演讲嘉宾&#xff0c;演讲议题&#xff1a;能源物联网产品标准项目和非标准项目的并行管理。大会将于8月12-13日在北京举办&#xff0c;敬请关注&#xff01; 议题简要&#xff1…

《合成孔径雷达成像算法与实现》Figure3.6

代码复现如下&#xff1a; clc clear all close all%参数设置 TBP 100; %时间带宽积 T 10e-6; %脉冲持续时间%参数计算 B TBP/T; …

【回眸】AurixTC397的MPS8875A开发之展频篇

目录 前言 【回眸】AurixTC397的MPS8875A开发之展频篇 知识储备 看懂芯片手册 调整寄存器写入值 修改写入寄存器代码 修改主函数代码 验证和测量 前言 因公需要&#xff0c;大半年来一直对AurixTC397进行开发。实物板子特别大&#xff0c;有很多很多芯片&#xff0c;具…

2023-08-09 ssh-add id_rsa 提示Permissions 0777 for ‘id_rsa‘ are too open

一、ssh-add id_rsa 提示Permissions 0777 for id_rsa are too open Permissions 0777 for id_rsa are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored.二、意思是说公钥文件权限太宽了&#xff0c;需…

【校招VIP】java语言考点之基本数据类型

考点介绍&#xff1a; 基本数据类型的长度、自动升级、JVM存储和封装类的相关考点&#xff0c;是校招常见考点。基础考点不能出错 一、考点题目 1、JAVA 中的几种基本数据类型是什么&#xff0c;各自占用多少字节解答&#xff1a;先了解2个单词先&#xff1a;1、bit --位&am…

Kubernetes集群部署 集群网络未部署

环境 > 192.168.50.53 k8s-master > 192.168.50.51 k8s-node1 > 192.168.50.50 k8s-node2 必须不能少于两核两G 所有主机共同操作 主机初始化配置 所有主机配置禁用防火墙和selinux [rootserver ~]# setenforce 0 [rootserver ~]# iptables -F [rootserver ~]…

form中表单切换,导致 relus 中的事件无法触发,原因:页面切换不要一直切换DOM,会导致问题,需要都显示出来

修改前&#xff0c;因为重复渲染DOM导致绑定rules失效 修改前代码使用 computed 计算出渲染的DOM&#xff0c;影响rules事件<el-formref"form"inline:model"billDetailCopy":rules"rules"size"small"label-position"right&quo…

使用无监督机器学习进行客户细分 -- 机器学习项目基础篇(11)

在今天的时代&#xff0c;公司努力工作&#xff0c;使他们的客户满意。他们推出新的技术和服务&#xff0c;以便客户可以更多地使用他们的产品。他们试图与每一个客户保持联系&#xff0c;以便他们能够相应地提供货物。但实际上&#xff0c;与每个人保持联系非常困难和不现实。…