动态规划入门——Monkey and Banana

转载请注明出处:http://blog.csdn.net/a1dark

分析:题意是堆箱子、要求上面的箱子的长和宽都小于下面箱子的长和宽、由于箱子可以无限放、所以一种箱子有6种情况、然后我们按照其中一边排序、另一边跟随排序、发现其实就是求最大上升子序列和的问题、那就没有难度了、

#include
#include
#define N 1001
#include
using namespace std;
struct node{
    int x,y,z;
}dot[N];
int sum[N];
int cmp(node a,node b){
    if(a.x>b.x)return 1;
    else if(a.x==b.x){
        if(a.ymaxx)
                maxx=sum[i];
        }
        printf("Case %d: maximum height = %d\n",cas,maxx);cas++;
    }
    return 0;
}


你可能感兴趣的:(ACM竞赛)