首页 > 其他 > 详细

P4702 取石子

时间:2019-04-05 10:42:36      阅读:103      评论:0      收藏:0      [点我收藏+]

我什么时候写一下污污的小故事呢?反正不是现在。

题目描述

Alice 和 Bob 在玩游戏。

他们有 nn 堆石子,第 ii 堆石子有 a_iai? 个,保证初始时 a_i \leq a_{i + 1}(1 \leq i < n)ai?ai+1?(1i<n)。现在他们轮流对这些石子进行操作,每次操作人可以选择满足 a_i > a_{i - 1}ai?>ai1?a_0a0? 视为 00)的一堆石子,并从中取走一个。谁最后不能取了谁输。Alice 先手,他们都使用最优策略,请判断最后谁会取得胜利。

输入输出格式

输入格式:

 

第一行一个整数 n(1 \leq n \leq 100)n(1n100),表示石子堆数。

接下来一行 nn 个数,第 ii 个数为 a_i(1 \leq a_i \leq 10^9)ai?(1ai?109),意义如上所述。

 

输出格式:

 

"Alice" 或 "Bob",表示谁会赢。

 

输入输出样例

输入样例#1: 复制
1
1
输出样例#1: 复制
Alice
输入样例#2: 复制
1
2
输出样例#2: 复制
Bob

这是一道博弈论的题目,博弈就是两个人对刚。我们要减少逆序对数,就统计总数即可。

参考代码

#include<bits/stdc++.h>
using namespace std;
#define RE register int
int n,sum;
signed main(){
    cin>>n;
    for (RE i=1,t;i<=n;++i)    cin>>t,sum+=t;
    puts(sum&1?"Alice":"Bob");
}

代码说明

小垃圾,还是入门题。

P4702 取石子

原文:https://www.cnblogs.com/aserrrre/p/10657954.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!