传送门
前段时间补了纳什均衡,今天再把不平等博弈补了差不多OI里面的博弈论这块就齐了。
不平等博弈与一般的ICG游戏NIM游戏差别真的不是一点半点。。。
比如不平等游戏的游戏和是各个游戏的游戏值加起来,而NIM游戏的游戏和是所有游戏的异或。
没有题解,建议去看09年集训队论文和18年WCdls的课件。
代码:
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#define ll long long
#define re register
#define cs const
char a[55];
ll calc(int n){
ll ans=0;
for(int re i=1;i<=n;++i)
scanf("%s",a+i);
std::reverse(a+1,a+n+1);
int i=n;ll now=1ll<<50;
while(i>0&&a[i]==a[n]){
if(a[i]=='B')ans-=now;
else ans+=now;--i;
}now>>=1;
while(i>0){
if(a[i]=='W')ans+=now;
else ans-=now;--i,now>>=1;
}
return ans;
}
int id;
void solve(){
scanf("%*s%d",&id);
ll c1=0,c2=0;int n1,n2,n3;
scanf("%d%d%d",&n1,&n2,&n3);
c1=calc(n1)+calc(n2)+calc(n3);
scanf("%d%d%d",&n1,&n2,&n3);
c2=calc(n1)+calc(n2)+calc(n3);
printf("Test %d: ",id);
puts(c1>=c2?"Yes":"No");
}
signed main(){
#ifdef zxyoi
freopen("procrastination.in","r",stdin);
#endif
int T;scanf("%d",&T);
while(T--)solve();
return 0;
}