题目
均分武将,拥有一对更高默契值的武将获胜。双方都很聪明,由小涵先取,求小涵能否拥有武将,求小涵拥有武将的最大值
分析
小涵必然拿走最高默契值,而计算机会拿走第二高的,如此下去,小涵必然会胜利,所以其实求的是次大默契值。
代码
#include <cstdio>
#include <cctype>
using namespace std;
int n,a[501][501],ans;
int in(){
int ans=0; char c=getchar();
while (!isdigit(c)) c=getchar();
while (isdigit(c)) ans=ans*10+c-48,c=getchar();
return ans;
}
int main(){
n=in();
for (int i=1;i<=n;i++){
int dmax=0,cmax=0;
for (int j=i+1;j<=n;j++) a[i][j]=a[j][i]=in();
for (int j=1;j<=n;j++){
if (dmax<a[i][j]) cmax=dmax,dmax=a[i][j];
else if (cmax<a[i][j]) cmax=a[i][j];
if (ans<cmax) ans=cmax;
}
}
return !printf("1\n%d",ans);
}
本文探讨了一种基于武将默契值的博弈策略问题。在该策略中,两名玩家轮流选取武将,目标是获得一对默契值最高的武将组合。通过分析博弈过程,可以确定首位玩家必胜的条件及最优策略。
4305

被折叠的 条评论
为什么被折叠?



