uva 103 Stacking Boxes
来源:互联网 发布:qq飞车t1神影至尊数据 编辑:程序博客网 时间:2024/05/21 01:46
题目大意:多维方形嵌套问题,要求输出最大的个数以及任意一组可嵌套的方形
题目思路:参考两维的矩形嵌套问题
题目坑点:无
参考代码:
#include <iostream>#include <stdio.h>#include <fstream>#include <iomanip>#include <cmath>#include <string>#include <string.h>#include <sstream>#include <cctype>#include <climits>#include <set>#include <map>#include <queue>#include <vector>#include <iterator>#include <algorithm>#include <stack>#include <functional>/*int类型最大值INT_MAX,short最大值为SHORT_MAXlong long最大值为LONG_LONG_MAX*///cout << "OK" << endl;#define _clr1(x) memset(x,0,sizeof(x))#define _clr2(x) memset(x,-1,sizeof(x))using namespace std;const int INF = INT_MAX;const double eps = 1e-8;const double EULER = 0.577215664901532860;const double PI = 3.1415926535897932384626;const double E = 2.71828182845904523536028;typedef long long LL;struct node{int c[12];}box[35];int n,k,first,G[35][35],res[35];bool cmp(node x1,node y1){node x = x1,y = y1;sort(&x.c[0],&x.c[0]+n);sort(&y.c[0],&y.c[0]+n);for(int i = 0;i<n;i++)if(x.c[i]>=y.c[i]) return 0;return 1;}void init(){for(int i = 0;i<k;i++)for(int j = 0;j<k;j++)if(cmp(box[i],box[j])) G[i][j] = 1;}int dp(int x){if(res[x]>0) return res[x];int ans = 1;for(int i = 0;i<k;i++)if(G[x][i]) ans = max(ans,dp(i)+1);return res[x] = ans;}void print_ans(int i){if(first){cout << i+1;first = 0;}else cout << " " << i+1;for(int j = 0;j<k;j++) if(G[i][j] && res[i] == res[j]+1){print_ans(j);break;}}int main(){ //freopen("sample.in", "r", stdin);//freopen("sample.out", "w", stdout);while(cin >> k >> n){first = 1;_clr1(G);_clr1(res);for (int i = 0;i<k;i++)for (int j = 0;j<n;j++)cin >> box[i].c[j];init();/*for (int i = 0;i<k;i++){for (int j = 0;j<k;j++)cout << G[i][j] << " ";cout << endl;}*/int M = 0;for (int i = 1;i<k;i++)if(dp(M)<dp(i)) M = i;cout << res[M] << endl;print_ans(M);cout << endl;} //fclose(stdin); //fclose(stdout); return 0;}
0 0
- UVa 103 Stacking Boxes
- UVA 103 - Stacking Boxes
- uva 103 - Stacking Boxes
- uva 103 Stacking Boxes
- [UVA 103] Stacking Boxes
- uva:103 - Stacking Boxes
- UVa 103 - Stacking Boxes
- UVA - 103 Stacking Boxes
- uva 103 - Stacking Boxes
- UVA 103 Stacking Boxes
- UVa 103 - Stacking Boxes
- Uva - 103 - Stacking Boxes
- uva 103 - Stacking Boxes
- UVa 103 - Stacking Boxes
- UVa 103 - Stacking Boxes
- Uva-103-Stacking Boxes
- UVa:103 Stacking Boxes
- UVA - 103 Stacking Boxes
- myisamchk命令使用总结
- Flask快速开始总结
- NDIS中间层驱动学习小记
- BZOJ 3925 [Zjoi2015]地震后的幻想乡
- 苹果开发 笔记(63)Masonry
- uva 103 Stacking Boxes
- leetCode #263 Ugly Number
- C primer plus 第十章
- hdu 5364 Distribution money(水)
- NYOJ 14 会场安排问题 (贪心)
- Swift学习之初识
- 二进制文件浏览器
- Android学习笔记(八)
- 神奇的IB_DESIGNABLE和IBInspectable