1. 程式人生 > >luogu 5月月賽 #A

luogu 5月月賽 #A

lse 現在 org bottom tar ref sub list col

T29693 取石子

題目描述

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?>ai?1?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 <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
int n;
int a[110]; long long ans; int main() { scanf("%d",&n); for(int i=1;i<=n;i++)scanf("%d",&a[i]); ans+=a[1]; for(int i=2;i<=n;i++) { if(a[i]>a[i-1])ans+=a[i]; } if(ans%2==0)printf("Bob"); else printf("Alice"); }

 

luogu 5月月賽 #A