2017-2018 ACM-ICPC Asia East Continent League Final L. SOS(博弈,思维)
Posted issue是fw
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2017-2018 ACM-ICPC Asia East Continent League Final L. SOS(博弈,思维)相关的知识,希望对你有一定的参考价值。
小范围手动模拟,发现不管怎样都可以平局,一时间不知道怎样必胜
考虑样例 n = 7 n=7 n=7的情况
先手现在中间放下一个 S S S
然后不管后手怎么走,先手都在另一侧的端点放一个 S S S(下面用 e e e表示空)
这样形成了S e e S S e e
或者S e e S e S e
或者S e e S e e S
这样一来我们有形如S e e S的状态,可以看出这是一个必败态,不管放在哪个位置放什么都输了
所以先手的任务只需要在S e e S之外的空位置填满且不输掉-----这是肯定可以做到的
所以 n = 7 n=7 n=7必胜
那么当 n = 8 n=8 n=8
由于奇偶性,虽然先手可以构造出S e e S的状态,但是最后是让自己遭殃
而后手根本构造不出S e e S的状态,因为构造这个状态必须满足有一个长度大于等于7的空闲区间
但是一开始先手在中间夹断后手就没机会了
所以当 n < = 6 n<=6 n<=6是平局
当 n > = 7 & & n < = 15 n>=7\\&\\&n<=15 n>=7&&n<=15时
当 n n n为奇数
由于先手开局存在大于等于 7 7 7的区间,可以在这个区间的中心放 S S S
然后后手必定不会在这个长度为 7 7 7的区间下子(必败)
所以会在其余地方下,而因为 n − 7 n-7 n−7是偶数,也就是刚好被先手下完
遭殃的是后手,先手必胜
当 n n n为偶数
显然由于奇偶性,先手不会构造S e e S(遭殃的是自己)
所以第一步会下 O O O分割棋盘,两侧都小于 7 7 7,后手也赢不了
平局
当 n > = 16 n>=16 n>=16
这时候有转机,因为先手的第一步分割开的两个部分都大于等于 7 7 7
后手此时也拥有主导权,此时决定胜负的就是奇偶
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e6+10;
int n,casenum;
int main()
{
int t; cin >> t;
while( t-- )
{
cin >> n;
cout << "Case #" << ++casenum << ": ";
if( n<=6 ) cout << "Draw\\n";
else if( n&1 ) cout << "Panda\\n";
else
{
if( n>=16 ) cout << "Sheep\\n";
else cout << "Draw\\n";
}
}
}
以上是关于2017-2018 ACM-ICPC Asia East Continent League Final L. SOS(博弈,思维)的主要内容,如果未能解决你的问题,请参考以下文章
2017-2018 ACM-ICPC Asia Tsukuba Regional Contest
2017-2018 ACM-ICPC, Asia Daejeon Regional Contest
2017-2018 ACM-ICPC Asia East Continent League Final L. SOS(博弈,思维)
(好题)2017-2018 ACM-ICPC, Asia Tsukuba Regional Contest F Pizza Delivery
2017-2018 ACM-ICPC Asia East Continent League Final J. Straight Master(差分+思维)
2017-2018 ACM-ICPC Asia East Continent League Final C. Traffic Light(思维)