zoukankan      html  css  js  c++  java
  • hdu acm 1069

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

    这一题够折磨人,这一题难度在dp中只是1难度值,害惨我了,不过也学到了不少东西

    #include <iostream>
    #include "algorithm"
    using namespace std;

    struct blocks
    {
     int x,y,z;
    }jm[3*31];

    int dp[3*31];

    bool cmp(blocks a,blocks b)//这个sort排序要用到的东西,起初我是用指针的,汗,错死我了,我在想我到底应该怎样解决这类问题啊,找不到问题,思路又没有问题,在一边干着急,汗汗汗~~~走过路过别忘了帮忙解决一下这类问题啊……还是南柯帮得忙啊~~~谢谢你啦^_^
    {
     if(a.x<b.x && a.y<b.y || a.x*a.y<b.x*b.y)
      return 0;
     else
      return 1;
    }

    int main()
    {
     int n,m;
     int i,j,xx,yy,zz,temp,count=1,max;

     while(scanf("%d",&n),n)
     {
      i=0;
      m=n;
      while(m--)
      {
       scanf("%d%d%d",&xx,&yy,&zz);
       jm[i].x=xx;
       jm[i].y=yy;
       jm[i].z=zz;
       if(jm[i].x>jm[i].y)
       {
        temp=jm[i].x;
        jm[i].x=jm[i].y;
        jm[i].y=temp;
       }
       
       i++;
       jm[i].x=yy;
       jm[i].y=zz;
       jm[i].z=xx;
       if(jm[i].x>jm[i].y)
       {
        temp=jm[i].x;
        jm[i].x=jm[i].y;
        jm[i].y=temp;
       }
       
       i++;
       jm[i].x=xx;
       jm[i].y=zz;
       jm[i].z=yy;
       if(jm[i].x>jm[i].y)
       {
        temp=jm[i].x;
        jm[i].x=jm[i].y;
        jm[i].y=temp;
       }
       
       i++;
      }
      n*=3;
      sort(jm,jm+n,cmp);
            
      for(i=0;i<n;i++)//dp最长子序列之和问题了
      {
       dp[i]=jm[i].z;
      }

      for(i=0;i<n;i++)
      {
                max=dp[i];
       for(j=0;j<i;j++)
       {
        if(jm[i].x<jm[j].x&&jm[i].y<jm[j].y)
        {
                        if(max<dp[j]+jm[i].z)
            max=dp[j]+jm[i].z;
                       }
       }
       dp[i]=max;
      }
      max=0;
      for(i=0;i<n;i++)
      {
             if(max<dp[i])
             max=dp[i];
             }
      
         printf("Case %d: maximum height = %d\n",count++,max);
     }
     return 0;
    }

    起初用的是qsort()排的序,不知道哪里出问题了,还是南柯提醒我用sort()的,但是关键是我现在还是不知道qsort()怎么用(用的只是一些关于它的基础,最简单的,一复杂就不会用了),救命啊~~~

  • 相关阅读:
    HDU 1847 Good Luck in CET-4 Everybody! (博弈)
    HDU 1242 Rescue (BFS+优先队列)
    POJ 1061 青蛙的约会(扩展欧几里德算法)
    UVa 1610 Party Games(思维)
    hdu 1025LIS思路同1257 二分求LIS
    hdu 1257 LIS (略坑5
    什么是可串行化MVCC
    老板又出难题,气得我写了个自动化软件
    opencv学习一:概述与环境搭建(python3.7+pycharm)
    人工智能能力提升指导总结
  • 原文地址:https://www.cnblogs.com/Shirlies/p/2281257.html
Copyright © 2011-2022 走看看