【算法】贪心
【题解】如果看重一对,先选择其中一个点,该点相邻最大的肯定被选走。所以答案就是最大的[所有点的次大连边点]啦。

#include<cstdio> #include<algorithm> #include<cmath> #include<cctype> #include<cstring> using namespace std; const int maxn=510; int a[maxn][maxn],n,max1,max2,ans; int main() { // freopen("sanguo.in","r",stdin); // freopen("sanguo.out","w",stdout); scanf("%d",&n); for(int i=1;i<=n;i++) { for(int j=i+1;j<=n;j++) scanf("%d",&a[i][j]),a[j][i]=a[i][j]; } /* for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++)printf("%d ",a[i][j]); printf(" "); }*/ ans=0; for(int i=1;i<=n;i++) { max1=0;max2=0; for(int j=1;j<=n;j++) if(a[i][j]>max1)max2=max1,max1=a[i][j]; else if(a[i][j]>max2)max2=a[i][j]; // printf("i=%d max=%d max2=%d ",i,max1,max2); if(max2>ans)ans=max2; } printf("1 %d",ans); return 0; }