CF1396B Stoned Game(博弈论)
生活随笔
收集整理的這篇文章主要介紹了
CF1396B Stoned Game(博弈论)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
解析
上午模擬被博弈論虐,下午被黃色的博弈論虐
qwq
首先的一個結論是:
如果有一堆超過總體的一半,那么先手只需要守住這堆就穩贏了
如果沒有這樣的一堆,可以證明,最后一定可以全部拿完
假設最后有一堆k沒拿完,那么說明在之前的拿取中,肯定有一個人通過一次拿取導致了sk?other>1s_k-other>1sk??other>1。
假設A在拿完一個otherotherother的東西后,使sk?other=1s_k-other=1sk??other=1
那么B也不傻,他肯定會拿一個k堆的東西使自己不輸
得證
(盡管證的稀碎)
這樣分一下奇偶討論即可
代碼
#include<bits/stdc++.h> using namespace std; #define ll long long #define ull unsigned long long const int N=3e5+100; ll read() {ll x=0,f=1;char c=getchar();while(!isdigit(c)) {if(c=='-')f=-1;c=getchar();}while(isdigit(c)) {x=x*10+(c^48);c=getchar();}return x*f; } int n,m,q;int main(){int T=read();while(T--){int res(0),mx(0);n=read();for(int i=1;i<=n;i++){int x=read();res+=x;mx=max(x,mx);}if((res&1)||2*mx>res) printf("T\n");else printf("HL\n");}return 0; }總結
以上是生活随笔為你收集整理的CF1396B Stoned Game(博弈论)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 校内网怎么设置路由器吖校园网用路由器怎么
- 下一篇: CF508D Tanya and Pas