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;
    }
    

      

  • 相关阅读:
    [POJ1724]ROADS
    表达式求值
    [NOIp2017提高组]奶酪(BFS)
    [NOIp2012提高组]Vigenère 密码
    [NOIp2012提高组]国王游戏
    [POJ1321]棋盘问题
    [POJ3009]Curling2.0
    垃圾陷阱
    2019CSP day1t2 括号树
    2019CSP游记
  • 原文地址:https://www.cnblogs.com/sola1994/p/4322176.html
Copyright © 2011-2022 走看看