Uva OJ 103 - Stacking Boxes
来源:互联网 发布:unity3d 内嵌网页插件 编辑:程序博客网 时间:2024/06/14 22:24
DAG最长路径,dp
2Y
CF掉到绿了....准备最近不参加比赛,转而好好修炼自身了,div2后两道题目都切不掉,水平还差得远呢
前三道题目也不是能保证过FinalTest
fighting!加油!
什么时候uva500题了再去切CF
#include<stdio.h>#include<vector>#include<stdlib.h>int cmp(const void *a,const void *b){int *p=(int *)a;int *q=(int *)b;return *p-*q; }int q[40][12];int max(int a,int b){if(a>b)return a;return b;}int dp[40];int m,n;int fit(int a,int b){int i;int flag=1;for(i=0;i<n;i++)if(q[a][i]<=q[b][i])flag=0;return flag;}int dag(int x){if(dp[x]>-1)return dp[x];dp[x]=0;int i;for(i=1;i<=m;i++){if(i==x)continue;if(fit(x,i))dp[x]=max(dp[x],dag(i)+1);}return dp[x];}void back(int p){int x=dp[p],i;for(i=1;i<=m;i++){if(i==p)continue;if(fit(p,i)&&dp[i]==x-1){back(i);printf("%d ",i);return;}}}int main(){while(scanf("%d%d",&m,&n)!=EOF){int i,j;for(i=1;i<=m;i++){for(j=1;j<=n;j++){int x;scanf("%d",&x);q[i][j-1]=x;}qsort(&q[i][0],n,sizeof(int),cmp);}for(i=1;i<=m;i++)dp[i]=-1;int res=0;for(i=1;i<=m;i++)res=max(res,dag(i));printf("%d\n",res+1);int p;for(i=1;i<=m;i++)if(dp[i]==res)p=i;back(p);printf("%d\n",p);}return 0;}
- Uva OJ 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
- zebra 的Thread机制
- 简易处理自定义QListWidget元素
- UI_USER_INTERFACE_IDIOM() & UIDevice.model
- VS2010开发Excel2007插件以及制作打包安装程序
- MyEclipse安装其他插件后svn不显示,功能失效
- Uva OJ 103 - Stacking Boxes
- 静态测试 vs 动态测试
- zebra线程管理源码简析
- 在C#中SendMessage和PostMessage的参数传递
- jquery读取xml文件
- grep的用法
- Flex Canvas 问题
- (转)c++异常处理应用讲解
- js对字符串的处理