首页 > 学院 > 开发设计 > 正文

QAQ and steel ball discs [博弈]

2019-11-06 06:24:23
字体:
来源:转载
供稿:网友

“江山如画,无人许我一世繁华;墓柩之大,方寸之间亦是天下。”QAQ终究还是没能耐得住寂寞,和小伙伴一起踏上了盗墓之路……

QAQ和小伙伴一起来到了一个古老的青铜门前,门宽五丈五,高六丈,门中间却有一个由钢珠组成的圆盘,深藏不露QAQ一眼看出这就

是传说中的钢珠圆盘,什据古书记载,破局者每次可从中取走一个或两个钢珠,而此圆盘每次亦会每次消失一颗或两颗钢珠,而走或

消失两个钢珠时所取或消失的两颗钢珠必须是连续的,若最后一次剩余钢珠由破局者取出者此局可破….QAQ和圆盘亦每次都会做出最

佳决策,QAQ能否顺利进入青铜门?

输入 第一行输入一个整数T (1000 > T > 0),代表有T组测试数据。

每组数据输入一个整数n( 0 < n < 100000),表示该钢珠圆盘由几颗钢珠组成

输出 若QAQ可以顺利进入青铜们输出”YES”,反之输出”NO”

样例输入 3 2 5 1 样例输出 YES NO YES

#include<cstdio>#include<cstring>#include<cmath>#include<stack>#include<queue>#include<algorithm>using namespace std;#define INF 0x3f3f3f3f#define ll long longint main(){ int t; scanf("%d",&t); while (t--){ int n; scanf("%d",&n); if (n == 1 || n == 2) PRintf("YES/n"); else printf("NO/n"); } return 0;}

N <= 2 时先手,下完必胜。

N > 2 时无论先手第一次取几个,后手都可在中间取走一个或两个使圆盘的钢珠数变 成完全相同的两份,然后先手每次怎样取,后手亦可在另一个做同样的操作,先手必败。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表