现在的位置: 首页 > 综合 > 正文

poj1082

2018年04月26日 ⁄ 综合 ⁄ 共 596字 ⁄ 字号 评论关闭

从某年某月某天开始两个人轮流开始将日期推进,推进方法有两种,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.
【上篇】
【下篇】

抱歉!评论已关闭.