UVaOJ_103 - Stacking Boxes
来源:互联网 发布:淘宝的冬天雪地棉 编辑:程序博客网 时间:2024/05/21 21:48
#include <iostream>#include <cstdlib>#include <cstring>using namespace std;int cmp(const void *a, const void *b);int dp(int cur);void output(int i);int a[35][15];int d[35];int count;int len;int t;int main() {while(cin >> count >> len){for(int i = 1; i <= count; i++){for(int j = 1; j <= len; j++){cin >> a[i][j];}qsort(&a[i][1], len, sizeof(a[0][0]), cmp);}memset(d, 0, sizeof(d));for(int i = 1; i <= count; i++){dp(i);}int max;for(int i = 1; i <= count; i++)max = d[max] > d[i] ? max : i;cout << d[max] << endl;t = 0;output(max);cout << endl;}}int cmp(const void *a, const void *b){return (*(int *)a) - (*(int *)b);}int dp(int cur){if(d[cur] > 0)return d[cur];d[cur] = 1;for(int i = 1; i <= count; i++){int flag = 1;for(int k = 1; k <= len; k++)if(a[cur][k] >= a[i][k]){flag = 0;break;}if(flag == 1){d[cur] = d[cur] > (dp(i) + 1) ? d[cur] : (dp(i) + 1);}}return d[cur];}void output(int i){if(t == 0){t++;cout << i;}elsecout << " " << i;for(int j = 1; j <= count; j++){int flag = 1;for(int k = 1; k <= len; k++)if(a[i][k] >= a[j][k]){flag = 0;break;}if(d[i] == d[j] + 1 && flag == 1){output(j);break;}}}
0 0
- UVaOJ_103 - Stacking Boxes
- Stacking Boxes
- Stacking Boxes
- 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
- 103 - Stacking Boxes
- UVa 103 - Stacking Boxes
- UVA - 103 Stacking Boxes
- uva 103 - Stacking Boxes
- UVA 103 Stacking Boxes
- Hdu 1614 Stacking Boxes
- UVa103 - Stacking Boxes
- 原力的黑暗面
- uboot分析之Makefile笔记2
- Flume 1.4.0 NG 分布式集群搭建
- js 获取url参数值,鼠标点击在页面的位置
- 学习C++语言基础
- UVaOJ_103 - Stacking Boxes
- android中的系统级服务getSystemService(name)
- [2014.04.13]武大赛后总结
- Using 1.7 requires compiling with Android 4.4 (KitKat); currently using
- Servlet生命周期
- 学习怎样把视频文件存储到mysql数据库
- Spring-IOC容器
- HDU-OJ-1231 最大连续子序列
- 14条最佳JS代码编写技巧