萌新5:日历游戏(博弈论,递推找规律)

题目描述

Alice 和 Bob 在玩一个游戏,他们先从 2000.1.1 到 2024.8.1 这个日期之间(不包括2024.8.1)随意抽取一个日期出来。然后他们轮流对这个日期进行操作:

  1. 把日期的天数加 1,例如:2000.1.1 变到 2000.1.2

  2. 把月份加 1,例如:2000.1.1 变到 2000.2.1

其中如果天数超过应有天数则日期变更到下个月的第 1 天。月份超过 12 则变到下一年的1月。而且进行操作2的时候,如果有这样的日期:2000.1.31,则变成了 2000.2.31,这样的操作是非法的,我们不允许这样做。

所有的操作均要考虑历法和闰年的规定。

谁先将日期变到 2024.8.1 谁就赢了。如果超越了指定日期不算获胜。

每次游戏都是 Alice 先操作,问他有没有必胜策略?

输入描述:

 

第一行一个整数 T,为数据组数(1<=T<=1000)。

接下来一行 X,Y,Z 表示 X 年 Y 月 Z 日。

输出描述:

输出 YES 或者 NO 表示 Alice 是否有必胜策略。

示例1

输入

复制3 2001 11 3 2001 11 2 2001 10 3

3
2001 11 3
2001 11 2
2001 10 3

输出

复制YES NO NO

YES
NO
NO

做法

首先他要到8月1号,那说明 7月31是一定行的 ,然后7月1号也一定行的。然后我们发现7月29只要我先+1变成7月30,那后手就一定能变成7月31,到先手A时又是7月31了。所以这样子推下去 我们发现就是隔两天就一定能推成前面那个点。然后6月30 ,我先手变成7月30 ,他后手就必须变成7月31。然后就发现一个规律 :月份+日期是偶数是必胜态。还有润年 ,我们单独考虑2月29发现他先手不管怎么操作都只能变成3.1或3.29,也满足偶数是必胜态的规律。但有一些特殊情况,比如11月30 我先手变成12月1号就可以必胜态,9月30同理。

#include<bits/stdc++.h>
using namespace std;
int t;
int x,y,z;
int main(){scanf("%d",&t);while(t--){scanf("%d%d%d",&x,&y,&z);if((z+y)%2==0) cout<<"YES"<<endl;else if(y==11&&z==30) cout<<"YES"<<endl;else if(y==9&&z==30) cout<<"YES"<<endl;else cout<<"NO"<<endl;}
}

我之前还在想,我后手推到2024年7月30发现赢不了,我直接让他推到2024年8月30不就好了,那样谁都赢不了。不过这么做就没有什么意义了,也比不出谁赢谁输。

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

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

相关文章

【0325】Postgres内核之 VACUUM(FULL) 创建 BufferAccessStrategy object(16)

1. 创建 BufferAccessStrategy object 这部分是属于Postgres内核中 “后端进程私有缓冲区环管理” 内容。 GetAccessStrategy() 函数 用于创建一个 BufferAccessStrategy 对象,该对象将在当前内存上下文中分配。 该函数原型如下: BufferAccessStrategy GetAccessStrategy(…

(二)ASP.NET Core WebAPI项目的启动地址设置

上一篇介绍了ASP.NET Core WebAPI项目创建&#xff0c;可参考&#xff1a; 1.webAPI的访问地址 1) 启动时&#xff0c;选择CoreWebAPI(项目名称)运行项目 可以看到打开浏览器后的地址是&#xff1a;applicationUrl"\"launchUrl 2) 启动时&#xff0c;选择IIS Expre…

Ansys Zemax | 在OpticStudio中仿真单模光纤耦合

附件下载 联系工作人员获取附件 准确分析耦合效率在光纤耦合系统的设计中至关重要。本文演示了如何在OpticStudio中使用多种光纤耦合效率分析。 概要 OpticStudio序列模式可以很好地模拟单模光纤耦合效率。本文演示了如何设置耦合系统&#xff0c;并研究了序列模式下可用于…

redis分布式锁和lua脚本

业务场景&#xff1a;多个线程对共同资源的访问&#xff1a;库存超卖/用户重复下单的原因 解决方法一&#xff1a;利用jvm内置锁&#xff0c;将非原子性操作变成原子性操作 Synchronized锁的是对象&#xff0c;对象必须是单例的。锁的是this,代表当前所在的类&#xff0c;这个…

RabbitMQ 基础架构流程 数据隔离 创建用户

介绍 publisher&#xff1a;消息发送者-exchange&#xff1a;交换机&#xff0c;复制路由的消息-queue&#xff1a;队列&#xff0c;存储消息consumer&#xff1a;消息的消费者 工作流程 publisher消息发送者 -> exchange 交换机 -> queue 队列 -> consumer 消息的消…

流动会场:以声学专利为核心的完美移动场地—轻空间

流动会场作为一种全新的活动场所选择&#xff0c;凭借其便捷的移动性与先进的声学设计&#xff0c;正逐渐成为各类演出、会议和文化活动的热门场地。其独特之处不仅在于搭建速度快、灵活性高&#xff0c;还在于其核心技术——声学专利的强大支持。 专利声学设计&#xff0c;打造…

7个 C# 高阶用法详解:从基础到实战

C# 高阶用法详解&#xff1a;从基础到实战 在实际开发中&#xff0c;C# 提供了很多高级特性和设计模式&#xff0c;帮助我们写出更加简洁、灵活和高效的代码。本篇将深入探讨 C# 中的高阶用法&#xff0c;通过丰富的示例&#xff0c;带你掌握这些工具的精髓。 1. LINQ&#x…

Kotlin 流 Flow

挂起函数可以异步地返回一个值&#xff0c;而对于返回多个值&#xff0c;可以使用流&#xff0c;使用 emit(x) 发射多个值&#xff0c; collect { } 来收集值。 默认 流是冷的&#xff0c;只有 收集&#xff08;collect&#xff09; 时才会执行。 1. 流的创建 flow {} 生成流…

【LeetCode】06.Z字形变换

题目要求 解题思路 首先映入我们脑海的就是暴力。这一方法可行&#xff0c;但是时间复杂度空间复杂度很高&#xff0c;因此我们使用找规律的方法。这样的话我们可以模拟插入下标&#xff0c;这样的话很容易发现首行和末行插入的位置刚好是d2*n-2&#xff0c;而中间行的两个位置…

windows下安装elasticSearch和kibana

下载es 下载地址官网 下载后是个压缩包(elasticsearch-8.15.0-windows-x86_64)&#xff0c;解压即可 启动 配置 改一下 /conf/jvm.options文件&#xff0c;最后加一行编码配置&#xff0c;这个是为了启动后防止控制台乱码 -Dfile.encodingGBK启动es 依赖jdk8环境&#xf…

目标检测-YOLOv8

YOLOv8 YOLOv8 是 YOLO 系列的最新版本&#xff0c;它在 YOLOv7 的基础上进行了多项改进&#xff0c;主要侧重于进一步提升推理速度、检测精度以及模型的通用性。与之前版本相比&#xff0c;YOLOv8 引入了新的技术和优化策略&#xff0c;使其在多个方面更具优势。 相比 YOLOv…

【python】 @property属性详解

【python】 property属性详解 一文搞懂python中常用的装饰器&#xff08;classmethod、property、staticmethod、abstractmethod…&#xff09;

【SQL笔试题】SN_1 连续登陆系列问题

简介 连续登陆天数场景描述是对一个特定情境或活动连续发生的天数进行详细的阐述。这种描述通常用于展示某个事件或活动的持续时间&#xff0c;以及它对参与者或环境产生的影响。 常见的应用场景&#xff1a; 用户留存分析&#xff1a;通过跟踪用户的连续登录天数&#xff0…

C语言中static与extern关键字的深入解析

在C语言编程中&#xff0c;static和extern是两个非常重要的关键字&#xff0c;它们各自有着独特的用途。本文将深入探讨这两个关键字的工作原理、底层实现机制以及在实际开发中的应用。 static关键字 1. 原理与作用 static关键字用于声明变量或函数具有特定的作用域和生命周…

第二百一十六节 JSF教程 - JSF基本标签、JSF表单文本框示例

JSF教程 - JSF基本标签 JSF提供了一个标准的HTML标签库&#xff0c;它们被渲染成相应的html输出。 为了使用这些标签&#xff0c;我们需要在html节点中使用以下URI的命名空间。 <html xmlns"http://www.w3.org/1999/xhtml" xmlns:h"http://java.sun.com/js…

Android 优雅封装Glide

文章目录 Android 优雅封装Glide核心思想定义策略接口定义图片选项实现Glide策略图片管理类使用 Android 优雅封装Glide 核心思想 使用策略模式实现不同图片加载框架的切换&#xff0c;使用建造者设计模式处理不同参数&#xff0c;最后通过 ImageLoader 进行管理。 定义策略…

【自考zt】【数据结构】【22.04】

一、单选 二、填空 三、解答 四、算法阅读 五、算法设计

Tensorflow常见激活函数 -- Tensorflow自学笔记10

激活函数 激活函数是用来加入非线性因素的&#xff0c;因为线性模型的表达能力不够。引入非线性激活函数&#xff0c;可使深层神经网络的表达能力更加强大。 一. 什么是优秀的激活函数&#xff1f; 优秀的激活函数应满足: 1. 非线性: 激活函数非线性时&#xff0c;多层神经网…

【系统架构设计师-2023年】综合知识-答案及详解

更多内容请见: 备考系统架构设计师-核心总结索引 文章目录 【第1~2题】【第3题】【第4~5题】【第6题】【第7题】【第8题】【第9题】【第10~11题】【第12题】【第13题】【第14题】【第15题】【第16题】【第17题】【第18题】【第19题】【第20题】【第21~22题】【第23题】【第24~…

第四届摩纳哥智能化可持续发展码头交流会

第四届摩纳哥智能化可持续发展码头交流会 摩纳哥游艇码头顾问公司&#xff08;M3&#xff09;认为游艇行业的绿色转型需要做到从游艇本身到游艇码头的360度全方位可持续化发展&#xff0c;因此&#xff0c;继今年3月的摩纳哥智能游艇交流会后&#xff0c;他们将于2024年9月22日…