zoukankan      html  css  js  c++  java
  • hdu 1069 Monkey and Banana (最长上升子序列)

    http://acm.hdu.edu.cn/showproblem.php?pid=1069

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    struct Node
    {
      int a,b,c,dp;
    };
    Node node[3000];
    int cmp(Node x,Node y)
    {
      if(x.a==y.a) return x.b<y.b;
      return x.a<y.a;
    }
    
    int main()
    {
      int n;
      int i,j,k;
      int a,b,c;
      int cas=1;
      while(scanf("%d",&n),n)
      {
        for(i=1;i<=6*n;i++)
        {
          scanf("%d%d%d",&a,&b,&c);
          node[i].a=a;node[i].b=b;node[i].dp=node[i].c=c;i++;
          node[i].a=a;node[i].b=c;node[i].dp=node[i].c=b;i++;
          node[i].a=b;node[i].b=a;node[i].dp=node[i].c=c;i++;
          node[i].a=b;node[i].b=c;node[i].dp=node[i].c=a;i++;
          node[i].a=c;node[i].b=a;node[i].dp=node[i].c=b;i++;
          node[i].a=c;node[i].b=b;node[i].dp=node[i].c=a;
        }
        sort(node+1,node+6*n+1,cmp);
        int maxx=node[6*n].c;
        for(i=6*n-1;i>=1;i--)
        {
          for(j=i+1;j<=6*n;j++)
          {
            if(node[i].a<node[j].a&&node[i].b<node[j].b&&node[i].dp<node[i].c+node[j].dp)
              node[i].dp=node[i].c+node[j].dp;
          }
          if(node[i].dp>maxx) maxx=node[i].dp;
        }
        /*printf("ssssssssssssssssss
    ");
        for(i=1;i<=6*n;i++)
        {
          printf("%d %d %d %d
    ",node[i].a,node[i].b,node[i].c,node[i].dp);
        }*/
    
        printf("Case %d: maximum height = %d
    ",cas++,maxx);
      }
      return 0;
    }
    

      

  • 相关阅读:
    ZOJ Problem Set
    数学之美:生活中的技术
    java泛型【收藏】
    "i=i++"在java等高级语言的解释
    poj1001
    ⑧javaWeb之在例子中学习(过滤器Filter)
    ZOJ Problem Set
    IT十年经典书籍
    ⑦JSP2.0的福利(标签文件)
    myeclipse-common 找不到
  • 原文地址:https://www.cnblogs.com/sola1994/p/4322176.html
Copyright © 2011-2022 走看看