P1199 三国游戏

题面:https://www.luogu.org/problem/P1199

本题其实很好分析,因为当我挑一个武将后,计算机一定会挑走与之匹配所得贡献最大的武将,那么也就是说我和计算机都得不到与每一个武将匹配所得贡献最大的武将,
但是我却可以得到与之匹配次大的武将,所以我只要选匹配所得贡献次大中的最大值即为答案.

Code:
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<ctime>
#include<deque>
using namespace std;
const int N=1005;
int n,w[N][N],ans,sum[N];
int main(){
	int x;
	scanf("%d",&n);
	for(int i=1;i<n;i++){
		for(int j=i+1;j<=n;j++){
			scanf("%d",&x);
			w[j][i]=w[i][j]=x;
		}
	}
	for(int i=1;i<=n;i++){
		int maxn=0;
		for(int j=1;j<=n;j++){
			maxn=max(maxn,w[i][j]);
		}
		int maxnn=0;
		for(int j=1;j<=n;j++){
			if(w[i][j]!=maxn){
				maxnn=max(maxnn,w[i][j]);
			}
		}
		ans=max(ans,maxnn);
	}
	printf("1\n%d\n",ans);
	return 0;
}
posted @ 2019-09-22 13:44  prestige  阅读(128)  评论(0编辑  收藏  举报