洛谷:P1199 三国游戏(数学,普及/提高- )

题目:

在这里插入图片描述

分析:还是看答案提示才有思路

结论:每一行中次大中的最大。
提问:每一行最大的可能取到吗?
回答:一定那个不可能,而且我可以控制电脑也不可能取到,除非我傻了。
提问:每一行中次大中的最大那个我一定可以取到吗?
回答:可以,先取这一行就可以啦!

其实第一个问题不准确,某个可能是改行最大其他行第二大也是可以的

代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
 int num;
 cin>>num;
 int A[num][num];
 memset(A,-1,sizeof(A));
 for(int i=0;i<num-1;i++)
 {
  for(int j=0;j<num-i-1;j++)
  {
   int t;
   cin>>t;
   A[i][i+1+j]=t;
   A[i+1+j][i]=t;
  }
 }
 int maxx=-1;
 for(int i=0;i<num;i++)
 {
  int max1=max(A[i][0],A[i][1]),max2=min(A[i][0],A[i][1]); 
  for(int j=2;j<num;j++)
  {
   if(A[i][j]>max1)
   {
    max2=max1;
    max1=A[i][j];
   }
   else if(A[i][j]>max2) max2=A[i][j];
  }
  maxx=max(maxx,max2);
 }
 cout<<1<<endl<<maxx;
 }

猜你喜欢

转载自blog.csdn.net/weixin_42721412/article/details/107328113