poj1082

从某年某月某天开始两个人轮流开始将日期推进,推进方法有两种,1.推进到第二天 2.推进到下个月的这一天

np问题,我们设月号加日号等于d,对于第二种推进方式,会改变d的奇偶性。(因为月的奇偶变了,日的奇偶没变,和的奇偶就变了)。对于第一种推进方式,如果推进后还在同一个月份,那么会改变d的奇偶性。(因为月的奇偶没变,日的变了,和的奇偶就变了)。第一种推进方式,跨月份的时候,有些会改变,有些不会改变。有31天、29天的月份会变,30天、28天的不会变,其中对于d为偶的情况(2月28,4、6月30)可以利用第二中方式变为奇。

由此可见对于绝大部分情况来说d的奇偶是轮流出现的,最终必败态是11月4日奇态。但是对于d为奇的9、11月30却可以保持奇。也就是必胜态。偶态为必胜态,因为对于任何一种偶的状态都可以使其变为非9、11月30的奇态。其余奇态为必败态。

总结起来就是除了9、11月30之外,按d的奇偶性可以分为n和p状态。


program poj1082;
var
  n,y,m,d:longint;
begin
  read(n);
  while n<>0 do
    begin
      dec(n);
      read(y,m,d);
      if ((m=9)or(m=11))and(d=30) then writeln('YES')
                                 else
      if (m+d) and 1 = 1 then writeln('NO')
                         else writeln('YES');
    end;
end.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值