uva 103 Stacking Boxes
来源:互联网 发布:linux命令hexdump 编辑:程序博客网 时间:2024/05/20 22:38
DAG最长路算法
刚开始没有想到的是如何保存路径,自己想了用两个数组记录,想想就觉得比较麻烦,所以放弃了。最后看了其他人的代码由一个数组记录,每个数组的元素记录下一个的下标。
#include<stdio.h>#include<string.h>#include<math.h>#include<algorithm>#include<iostream>using namespace std;int n,k,v[35][15],next[35],d[35];int dp(int i){ int& ans=d[i]; if(ans>=0) return d[i]; ans=1; next[i]=-1; int x,f,y; for(x=0; x<n; x++) { f=1; for(y=0; y<k; y++) { if(v[x][y]<=v[i][y]) { f=0; break; } } if(f&&dp(x)+1>ans) { ans=dp(x)+1; next[i]=x; } } return ans;}int main(){ int i,j,cnt,f; while(~scanf("%d%d",&n,&k)) { for(i=0; i<n; i++) { for(j=0; j<k; j++) scanf("%d",&v[i][j]); sort(v[i],v[i]+k); } memset(d,-1,sizeof(d)); cnt=0; for(i=0; i<n; i++) { if(dp(i)>cnt) { cnt=dp(i); f=i; } } printf("%d\n",cnt); printf("%d",f+1); for(i=next[f]; i>=0; i=next[i]) printf(" %d",i+1); printf("\n"); } 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
- Android SDK的特征
- java编写的排序方法
- Codeforces Round #291 (Div. 2)E. Darth Vader and Tree——dp+矩阵快速幂
- POJ 2299 Ultra-QuickSort (初学树状数组)
- Rails
- uva 103 Stacking Boxes
- JAVA调试大量线程的方法
- 菜鸟练习PAT(二)
- JavaScript - Translate Arabic Numbers to be English phrases
- K好数
- Reverse Integer--LeetCode(Java)
- break和continue
- 物联网需要自己的互联网吗?
- Sigfox获法国最大一笔VC投资,打造物联网自己的互联网