本文主要是介绍uva 437 hdu 1069,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
dp 将石块按三个面存入队列 按底面积排序 dp就最大高度 按嵌套矩形最长路做做法
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>using namespace std;
struct tone
{int x,y,z;void t(int a, int b, int c){x = a;y = b;z = c;}
};
bool cmp(tone q, tone p)
{return q.x*q.y < p.x*p.y;
}
tone tt[100];
int dp[101];
int main()
{int n;int ca = 1;while(scanf("%d",&n) && n){int k = 0;for(int i = 0; i < n; i++){int a,b,c;scanf("%d%d%d",&a,&b,&c);tt[k++].t(a,b,c);tt[k++].t(b,c,a);tt[k++].t(c,a,b);}sort(tt, tt+k, cmp);int _max = 0;for(int i = 0; i < k; i++){dp[i] = tt[i].z;for(int j = 0; j < i; j++){if((tt[i].x > tt[j].x && tt[i].y > tt[j].y) || (tt[i].x > tt[j].y && tt[i].y > tt[j].x)){dp[i] = max(dp[i], dp[j]+tt[i].z);}}_max = max(_max, dp[i]);}printf("Case %d: maximum height = %d\n", ca++, _max);}return 0;
}
这篇关于uva 437 hdu 1069的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!