G - Godsend CodeForces - 841B
網址:https://cn.vjudge.net/contest/236128#problem/G
給定一個n個整數的序列,兩個玩家玩游戲,輪流進行操作(從第一個玩家開始),第一個玩家移除的數之和必須為奇數,第二個玩家移除的數之和必須為偶數,誰能最后移除完整個序列,那么誰贏。
Input
First line of input data contains single integer?n?(1?≤?n?≤?106) — length of the array.
Next line contains?n?integers?a1,?a2,?...,?an?(0?≤?ai?≤?109).
Output
Output answer in single line. "First", if first player wins, and "Second" otherwise (without quotes).
Example
Input
4解析:
如果輸入的數和為奇數,則玩家1贏,如果是偶數,則看輸入的數是否有奇數,如果有奇數,則玩家1贏,反之玩家二贏;
因為當和為偶數時,如果有奇數,則必定有偶數個,玩家1第一次取走一部分,剩下的還有奇數,且剩下的和為奇數,玩家2再取走一部分,身下的和肯定為奇數,此時玩家1可以全部取走,所以玩家1贏;
#include<bits/stdc++.h> using namespace std; typedef long long ll; const int M=1e6+10; int a[M]; int main() {ll n;scanf("%lld",&n);ll sum=0,k=0;for(int i=0;i<n;i++){scanf("%lld",&a[i]);sum+=a[i];if(a[i]%2==1) k++; } if(sum%2==1) printf("First\n");if(sum%2==0){//和為偶數 if(k>=2) printf("First\n");//偶數個奇數 else printf("Second\n");} return 0; } 1 3 2 3Output
FirstInput
2 2 2Output
SecondNote
在第一個樣例中,第一個玩家第一次就可以一次性把所有的數移除(因為所有數之和為奇數),所有第一個玩家贏;在第二個樣例中,第一個玩家無法進行操作,跳過,第二個玩家可以一次全部移除,所以第二個玩家贏。
?
總結
以上是生活随笔為你收集整理的G - Godsend CodeForces - 841B的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是 AOP
- 下一篇: 手把手教你使用pytorch实现双向LS