HDU1079 Calendar Game(博弈)

本文介绍了一个日期区间内的游戏,玩家需要通过增加日或月来达到特定目标日期。文章揭示了胜利状态的关键规律,并通过代码实现了判断给定日期是否为必胜状态的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目大意:

给定日期区间 1900-1-1 至 2001-11-4

随机给出一个区间内初始日期

每次操作可以将日或者月加一

将日期移动到 2001-11-4 则胜利


通过简单分析,由于每次操作仅改变了日月之和的奇偶性

容易得出日月之和为偶数时为必胜态,与年份无关

但是存在两个特殊的日期 9-30 和 11-30

由于这两个日期可以达到不改变奇偶性的目的

即可以让对手面对必败态,所以这两个日期也是必胜态


#include <stdio.h>

int main()
{
	int n,y,m,d;
	scanf("%d",&n);
	while(n--)
	{
		scanf("%d%d%d",&y,&m,&d);
		if((m+d)%2==0||(m==9||m==11)&&d==30)
			printf("YES\n");
		else
			printf("NO\n");
	}
	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值