其实有很多时候博弈不需要求sg函数,很多时候也是不好求的,这时候我们模拟一下,就可以知道它里面的游戏规律,有些规律不好找也不好证明,但是我们还是尽量证明吧。不然的话,真正不碰到了,不一定有勇气啊。平时的时候证明不到也没关系。多看看。慢慢积累,最后多了,经验有了,自然就好办了。 把月和日的和看做一个数a,那么两个人依次决定后会改变a的奇偶性, 最后面对11,4(a=11+4)是一个奇数,所以谁面对奇数这个状态谁就输了,反过来说如果谁 吧对方控制每次都是奇数,必然赢,在所有的日期中,所有的a是偶数的 月份肯定可以只用一步就把对方控制成奇数,(****9.30,和11.30 也可以)让对方一直是奇数包括平年或闰年的2月都一样 所以最先抢到a是偶数或者9.30或11.30的人会赢,也就是说第一个人面对的输入值a=(月+日)不满足赢的 状态,那么他一定会输; #include<stdio.h> int main () { int a,b,c,t; scanf("%d",&t); while(t--) { scanf("%d%d%d",&a,&b,&c); if((b+c)%2==0||(b==9||b==11)&&c==30) printf("YES\n"); else printf("NO\n"); } return 0; } |
杭电1079
最新推荐文章于 2019-11-08 19:30:08 发布