CSU-2220 Godsend
題目鏈接
http://acm.csu.edu.cn:20080/csuoj/problemset/problem?pid=2220
題目
Description
Leha somehow found an array consisting of n integers. Looking at it, he came up with a task. Two players play the game on the array. Players move one by one. The first player can choose for his move a subsegment of non-zero length with an odd sum of numbers and remove it from the array, after that the remaining parts are glued together into one array and the game continues. The second player can choose a subsegment of non-zero length with an even sum and remove it. Loses the one who can not make a move. Who will win if both play optimally?
Input
First line of input data contains single integer n (1?≤?n?≤?1000000) — length of the array.
Next line contains n integers a1,?a2,?...,?an (0?≤?ai?≤?1000000000).
Output
Output answer in single line.
"First", if first player wins, and "Second" otherwise (without quotes).
Sample Input
4 1 3 2 3Sample Output
First題意
兩個人進行游戲,給定n和n個數字,第一個人可以拿走和為奇數的一部分數字,第二個人可以拿走和為偶數的一部分數字,誰不能拿走數字則輸,問誰能贏
題解
博弈論入門題目,若所有數和為奇數,那么先手可以直接拿走所有數字,后手輸,若和為偶數,那么先手可以先拿走一個奇數,此時和為奇數,后手只能拿走和為偶數的部分,剩下的數仍為奇數,先手全部拿走,先手贏,若沒有一個奇數全為偶數,先手無法拿走數字,后手贏。
總結一下,即數列中有奇數,先手贏,否則后手贏
AC代碼
#include<bits/stdc++.h> using namespace std; int main() {int n;scanf("%d", &n);for (int i = 1; i <= n; i++) {int a;scanf("%d", &a);if (a % 2 == 1) {printf("First");return 0;}}printf("Second");return 0; } /**********************************************************************Problem: 2220User: ArtoriaxLanguage: C++Result: ACTime:180 msMemory:2024 kb **********************************************************************/轉載于:https://www.cnblogs.com/artoriax/p/10370731.html
總結
以上是生活随笔為你收集整理的CSU-2220 Godsend的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 驰为v10刷linux,驰为Vi10刷机
- 下一篇: 修改cpu控制文件init.qcom.p