CF1672A

题目大意

errorgorn与maomao90再进行一场比赛。有 $ n $ 段木头,每段长度为 $ a_i $ 。每个人可以将长度为 $ x $ 木头分为两段长度为 $ y $ 与 $ z $ 的木头, $ x \ y \ z $ 为正整数,且 $ x = y + z $ 。如果轮到一个人时,没有任何一个木头可以再被分成两段(没有任何一个木头的长度大于 $ 1 $ ),则这个人输了。并且他们每个人都会用最好的决策。

解题思路

刚开始看完题目时,以为是博弈论,想了一会没什么头绪,不明白究竟怎样才算是最好的决策,只好手动模拟一下。结果惊奇的发现,无论每个人采取什么样的策略,最后的结果都是一样的。也就是说比赛的输赢与采取什么策略无关,在游戏开始的时候就已经结束了。

具体的证明:将一个数 $ x $ 变成 $ x $ 个 $ 1 $ 的过程中,无论怎么分都要分 $ x – 1 $ 次。那么在一场比赛的过程中,一共会有 $ \sum_{1}^n ( a_i – 1 ) $ 次操作。

由于是errorgorn先手,所以当可操作次数为奇数时,maomao90最后将无法操作,即errorgorn将赢得比赛。而当可操作次数为偶数时,errorgorn最后将无法操作,即maomao90将赢得比赛。

代码

#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <cstring>

using namespace std;
int t,n,a,ans;
int main(){
    scanf("%d",&t);
    while(t--){
        ans=0;
        scanf("%d",&n);
        for(int i=1;i<=n;i++)scanf("%d",&a),ans+=a-1;
        if(ans%2) printf("errorgorn\n");
        else printf("maomao90\n");

    }
}
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇