zoj-1093-Monkey and Banana
2013-09-04 22:21
369 查看
一道DP题,不过在给元素排序时需要注意。
/* ID:slowlight PROG:Monkey and Banana LANG:C++ DATE:2013-9-4 */ #include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <queue> #include <vector> #include <set> #include <algorithm> using namespace std; typedef struct{ int a; int b; }Rect; typedef struct{ Rect base; int height; }Brick; bool operator < ( const Brick & a, const Brick & b) { Rect b_base = b.base; Rect base = a.base; if( base.a < b_base.a && base.b < b_base.b || base.a < b_base.b && base.b < b_base.a ) return true; else return false; }; bool cmp(const Brick & a, const Brick & b) { return a.base.b < b.base.b; } Brick d[100]; int f[100]; int main() { freopen("input.in", "r", stdin); freopen("output.out", "w", stdout); int N; int case_cnt = 0; int a, b, c;//3 edges of the brick cin >> N; case_cnt = 1; do { int max_height = 0; int cnt = 0; while( N-- ) { cin >> a >> b >> c; Rect rect; rect.a = min(a, b); rect.b = max(a, b); d[cnt].base = rect; d[cnt++].height = c; rect.a = min(a, c); rect.b = max(a, c); d[cnt].base = rect; d[cnt++].height = b; rect.a = min(b, c); rect.b = max(b, c); d[cnt].base = rect; d[cnt++].height = a; } sort(d, d + cnt, cmp); int size = cnt; for(int i=0;i<size;i++) f[i] = d[i].height; for(int i=0;i<size;i++) for(int j=0;j<i;j++) if( d[j] < d[i] ) { int temp; temp = d[i].height + f[j]; if( temp > f[i] ) f[i] = temp; } for(int i=0;i<size;i++) if( f[i] > max_height ) max_height = f[i]; cout << "Case " << case_cnt <<": maximum height = " << max_height << endl; cin >> N; case_cnt++; }while( N ); return 0; }
相关文章推荐
- ZOJ 1093 Monkey and Banana
- ZOJ 1093 Monkey and Banana
- ZOJ 1093 Monkey and Banana
- ZOJ_1093(Monkey and Banana)
- ZOJ Problem Set - 1093 Monkey and Banana
- ZOJ 1093 Monkey and Banana(动态规划)
- zoj1093 Monkey and Banana 动态规划
- zoj 1093 dp Monkey and Banana
- ZOJ 1093 Monkey and Banana (DP)
- ZOJ 1093 Monkey and Banana
- zoj 1093 Monkey and Banana
- ZOJ_1093_Monkey and Banana
- zoj1093题解 Monkey and Banana
- ZOJ 1093 Monkey and banana
- ZOJ 1093 Monkey and Banana(dp)
- HDU 1069 Monkey and Banana / ZOJ 1093 Monkey and Banana (最长路径)
- zoj1093 Monkey and Banana(DP)
- zoj 1093 Monkey and Banana
- ZOJ 1093 Monkey and Banana
- ZOJ 1093 Monkey and Banana【DP】