zoukankan      html  css  js  c++  java
  • 【NOIP】普及组2010 三国游戏

    【算法】贪心

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

    #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;
    }
    View Code
  • 相关阅读:
    2016去哪儿编程题:乘坐公交
    lintcode:交错正负数
    lintcode:Ugly Number I
    KMP算法
    适配器模式
    迭代器模式
    命令模式
    外观模式
    工厂方法模式
    代理模式
  • 原文地址:https://www.cnblogs.com/onioncyc/p/5766615.html
Copyright © 2011-2022 走看看