日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Codeforces_841_B Godsend(思路|简单博弈)

發布時間:2024/3/24 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Codeforces_841_B Godsend(思路|简单博弈) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Codeforces_841_B Godsend

題意

A和B兩個人玩游戲
1. 在一個數組num[]中
2. A先從num[]數組中選擇”任意的”“區間和是奇數”“連續的”一個區間,然后把這個區間的數字去掉.
3. 接下來是B從剩下的選擇”任意的”“區間和是偶數”“連續的”一個區間,然后把這個區間的數字去掉
4. 直到誰沒有數字可以去掉了,就輸了

解決

  • 第一次做cf有點小緊張,然后想了想就去判斷奇數的個數和偶數的個數誰打誰小.結果被Hack掉了/(ㄒoㄒ)/~~
  • 我們再想一想,其實,只要這個數組里出現了奇數,那就是A贏(輸出first)

  • 如果只有一個奇數, 2 2 1 2 2,第一個人會把所有的數字都拿掉,因為偶數不影響奇偶性
  • 如果奇數是分散開的, 先看是奇數個數為奇數的情況: 2 1 2 1 2 1 4,第一個人還是會拿掉所有的…
  • 如果是偶數個奇數,比如: 2 1 4 4 1 2 ,第一個人只要先拿掉2 1 4 4 給第二個人剩下一個奇數(第二個人不可能能拿奇數啊),這個奇數只能由第一個人來拿…所以還是第一個人贏…
  • 所以這個題就變成了,判斷有沒有出現奇數就好了…

  • 補充兩個常見單詞?^_^ odd num(偶數),even num(奇數)
  • #include <algorithm> #include <iostream> #include <cstring> #include <vector> #include <cstdio> #include <string> #include <cmath> #include <queue> #include <set> #include <map> #include <complex> using namespace std; typedef long long ll; typedef long double db; typedef pair<int,int> pii; typedef vector<int> vi; #define de(x) cout << #x << "=" << x << endl #define rep(i,a,b) for(int i=a;i<(b);++i) #define all(x) (x).begin(),(x).end() #define sz(x) (int)(x).size() #define mp make_pair #define pb push_back #define fi first #define se second #define E 1e-6 #define INF 0x3f3f3f3f void open(){freopen("data.txt","r",stdin);} void out(){freopen("out.txt","w",stdout);} const int maxn = 101010; const int MOD = 1e9 + 7;int main() {int x,n;scanf("%d",&n);rep(i,0,n){scanf("%d",&x);if(x&1){puts("First");return 0;}}puts("Second");return 0; }

    總結

    以上是生活随笔為你收集整理的Codeforces_841_B Godsend(思路|简单博弈)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。