P1199 [NOIP 2010 普及组] 三国游戏 题解
Kaedehara__Kazuha · · 题解
思路
如果小涵想要获胜,就要选到默契值尽可能大的一对武将。但我们会发现,计算机选择的策略决定了小涵不可能选到这对武将,于是我们退而求其次,考虑次大值。
接着我们又发现,如果我们拿走了一个武将
Code
#include<bits/stdc++.h>
using namespace std;
int n,a[505][505],ans;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
for(int j=i+1;j<=n;j++){
cin>>a[i][j];
a[j][i]=a[i][j];//构造一个对称的二维表来存储武将之间的默契值
}
}
for(int i=1;i<=n;i++){
sort(a[i]+1,a[i]+1+n);//排序,求次大值
ans=max(ans,a[i][n-1]);//更新答案
}
cout<<1<<"\n"<<ans;//由于小涵是必胜的,所以我们直接输出1和默契值就好
return 0;//华丽结束
}
蒟蒻的第一篇题解,求过。