标签:write ring ons pos mon term diff esc because
http://acm.hdu.edu.cn/showproblem.php?pid=1069
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 24641 Accepted Submission(s): 13209
#include <iostream> #include <memory.h> #include <string> #include <istream> #include <sstream> #include <vector> #include <stack> #include <algorithm> #include <map> #include <queue> #include <math.h> #include <cstdio> #include <set> #define ME(x , y) memset(x , y , sizeof(x)) #define SF(n) scanf("%d" , &n) #define rep(i , n) for(int i = 0 ; i < n ; i ++) #define INF 0x3f3f3f3f #define mod 998244353 #define PI acos(-1) using namespace std; typedef long long LL; int dp[189]; struct node { int x , y , z ; }a[189]; bool cmp(struct node a , struct node b) { if(a.x < b.x) { return 1 ; } else if(a.x == b.x) { return a.y < b.y ; } else return 0; } int main() { int n ; int cnt = 0 ; while(~scanf("%d" , &n) && n) { int l = 0 ; for(int i = 0 ; i < n ; i++) { int x , y , z ; scanf("%d%d%d" , &x , &y , &z); a[l].x = x , a[l].y = y , a[l++].z = z ; a[l].x = x , a[l].y = z , a[l++].z = y ; a[l].x = y , a[l].y = x , a[l++].z = z ; a[l].x = y , a[l].y = z , a[l++].z = x ; a[l].x = z , a[l].y = x , a[l++].z = y ; a[l].x = z , a[l].y = y , a[l++].z = x ; } sort(a , a+l , cmp); /*for(int i = 0 ; i < l ; i++) { cout << a[i].x << " " << a[i].y << " " << a[i].z << endl ; }*/ for(int i = 0 ; i < l ; i++) { dp[i] = a[i].z ; for(int j = 0 ; j < i ; j++) { if(a[j].x < a[i].x && a[j].y < a[i].y) { dp[i] = max(dp[i] , dp[j]+a[i].z); } } } int ans = -INF ; for(int i = 0 ; i < l ; i++) { ans = max(ans , dp[i]); } cout << "Case " << ++cnt << ": maximum height = " << ans << endl; } return 0; }
标签:write ring ons pos mon term diff esc because
原文地址:https://www.cnblogs.com/nonames/p/11729680.html