码迷,mamicode.com
首页 > 其他好文 > 详细

BZOJ2463 [中山市选2009] 谁能赢呢?

时间:2018-04-12 23:29:06      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:img   com   tor   必须   php   isp   AC   algo   getc   

题意:给定n,n×n的棋盘,一个石头放在左上角,两个人轮流移动石头,每次把石头向上,下,左,右四个方向移动一格,要求移动到的格子之前不能被访问过,不能移动石头就算输,两人都用最优策略,问先手胜还是后手胜。

https://www.lydsy.com/JudgeOnline/problem.php?id=2463

首先对于n是偶数,先手胜;n是奇数,后手胜

用1*2骨牌覆盖棋盘。

n为偶数时一定可以覆盖,每次先手走前一步所在骨牌另一端,先手必胜。

n为奇数时去掉左上角第一格一定能被骨牌覆盖,但是先手从左上角走,必须走到一个没有走过的骨牌内,每次后手走前一步所在骨牌另一端,后手必胜。

技术分享图片
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 #include<cmath>
 5 #include<cstring>
 6 #include<vector>
 7  
 8 using namespace std;
 9 
10 template <typename tn> void read (tn & a) {
11     tn x = 0, f = 1;
12     char c = getchar();
13     while (c < 0 || c > 9){ if (c == -) f = -1; c = getchar(); }
14     while (c >= 0 && c <= 9){ x = x * 10 + c - 0; c = getchar(); }
15     a = f == 1 ? x : -x;
16 }
17 
18 int main() {
19     int n;
20     read(n);
21     while (n) {
22         if (n % 2 == 0) {
23             printf("Alice\n");
24         }
25         else {
26             printf("Bob\n");
27         }
28         read(n);
29     }
30     return 0;
31 } 
View Code

 

BZOJ2463 [中山市选2009] 谁能赢呢?

标签:img   com   tor   必须   php   isp   AC   algo   getc   

原文地址:https://www.cnblogs.com/m-m-m/p/8810963.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!