Codeforces-429-2-B Godsend
題意:有兩個人做游戲,其中第一個人可以拿一個非空子集,其中這個非空子集的和要是奇數,拿過之后第二個再拿,第二個人取一個非空子集,要求這個非空子集的和是偶數,如果一個人不能再拿了,則對方獲勝。
思路:這個問題我們可以簡化為奇數偶數和的問題,有以下三種情況:
?????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 1.奇數+奇數=偶數
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 2.奇數+偶數=奇數
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 3.偶數+偶數=偶數
當全部數的和為奇數的時候很簡單,第一個人把全部的數都拿走,第一個人獲勝
當全部的和為偶數的時候,如果式子里面有奇數,則一個人取奇數,剩下全部的和還是為奇數,第一個人勝,其他情況為第二個人勝;
其實這個題就是思路題,可以把很多數分成奇數和偶數來考慮,這樣問題就簡化很多了
代碼如下:
#include <iostream> #include <cstdio> using namespace std; const int MAXN=1e6+10; int a[MAXN]; int main() {int n;scanf("%d",&n);long long sum=0;int even=0;int odd=0;for(int i=0; i<n; i++){scanf("%d",&a[i]);if(a[i]&1) odd=1;else even=1;sum+=(1ll)*a[i];}if(sum%2){printf("First\n");}else{if(odd) printf("First\n");else printf("Second\n");}return 0; }
????
總結
以上是生活随笔為你收集整理的Codeforces-429-2-B Godsend的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 打印Html页面自动分页
- 下一篇: ajax跨域jsonp并且post请求N