题目:https://www.luogu.org/problemnew/show/P1199
自己最大只能得到每一个武将的第二大配对。从中找一个最大的。
但是必胜,因为电脑得不到每一个武将的最大配对,而每一个武将的第二大配对中最大的也被我们选了。
那个找mx2的第二种情况需要注意。
#include<iostream> #include<cstdio> #include<cstring> #define ll long long using namespace std; const int N=505; int n; ll a[N][N],sum,mx1,mx2; int main() { scanf("%d",&n); for(int i=1;i<=n;i++) for(int j=i+1;j<=n;j++) scanf("%lld",&a[i][j]),a[j][i]=a[i][j]; for(int i=1;i<=n;i++) { mx1=0;mx2=0; for(int j=1;j<=n;j++) { if(a[i][j]>mx1)mx2=mx1,mx1=a[i][j]; else if(a[i][j]>mx2)mx2=a[i][j]; } sum=max(sum,mx2); } printf("1 %d",sum); return 0; }