sincerit 2147 kiki的游戏(简单博弈论)

2147 kiki的游戏
时间限制:5000/1000 MS(Java / Others)内存限制:40000/10000 K(Java / Others)
总提交内容:13657接受提交内容:8344

问题描述
最近kiki无事可做。虽然她很无聊,但他脑子里出现了一个想法,她只是玩棋盘游戏。主板的大小是n * m。首先,硬币放在右上角(1,m)。每次一个人可以将硬币移动到左侧,下方或左下方的空白区域。无法移动的人将失去游戏。kiki与ZZ一起玩。游戏总是以kiki开头。如果两者都能完美发挥,谁将赢得比赛?

输入
输入包含多个测试用例。每行包含两个整数n,m(0 <n,m <= 2000)。当n = 0且m = 0时,输入终止。
产量
如果kiki赢得游戏printf“精彩!”,否则“真可惜!”。
样本输入
5 3
5 4
6 6
0 0
样本输出
What a pity!
Wonderful!
Wonderful!

题目可以枚举小的规模找规律 1 * 1 , 1 * 2, 1 * 3, 2 * 1, 2 * 2 , 2 * 3 …
依次递推可以得出各个规模的胜败情况:
PNPNPNPNP
NNNNNNNNN
PNPNPNPNP
NNNNNNNNN
PNPNPNPNP
NNNNNNNNN
PNPNPNPNP
每一个的点根据n * m的奇偶判断胜败,n*m为奇数则必败,为偶数必胜

#include <iostream>
#include <stdio.h>
#include <cstring>
#include <algorithm>
using namespace std;
int main() {
  int n, m;
  while (cin >> n >> m, n||m) {
    if ((n*m) % 2 == 0) cout << "Wonderful!\n";
    else cout << "What a pity!\n";
  }
  return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值