uva103 - Stacking Boxes(动归,记忆化搜索)
来源:互联网 发布:木子软件 官网app 编辑:程序博客网 时间:2024/05/17 21:38
利用条件建图,然后在图中找到最长路径,
状态:dp[i]表示以i为起点的最长路径长度。
状态转移:dp[i] = {max(dp[j]+1)|g[i][j] = 1}
代码如下:
#include <cstdio>#include <cstdlib>#include <cstring>#define M 15#define N 35int m, n, a[N][M], g[N][N], d[N];int comp(const void *aa, const void *bb){ return *(int*)aa-*(int*)bb;}int judge(int s, int t){ for(int i = 0; i < m; i++) if(a[s][i]>=a[t][i]) return 0; return 1;}int dp(int x){ int &ans = d[x]; if(ans) return ans; ans = 1; for(int i = 1; i <= n; i++) { if(g[x][i]&&ans<dp(i)+1) ans = dp(i)+1; } return ans;}void print_ans(int x, int cur){ if(cur==1) {printf("%d\n",x); return; } else printf("%d ",x); for(int i = 1; i <= n; i++) if(g[x][i]&&d[x]==d[i]+1) {print_ans(i, cur-1); break;}}int main (){ while(~scanf("%d %d",&n,&m)) { for(int i = 1; i <= n; i++) { for(int j = 0; j < m; j++) scanf("%d",&a[i][j]); qsort(a+i,m,sizeof(int),comp); } for(int i = 1; i <= n; i++) for(int j = 1; j <= n; j++) { if(i!=j&&judge(i,j)) g[i][j] = 1; else g[i][j] = 0; } memset(d,0,sizeof(d)); for(int i = 1; i <= n; i++) dp(i); int max = 1, maxl = 0; for(int i = 1; i <= n; i++) if(d[max]<d[i]) max = i; maxl = d[max]; printf("%d\n",maxl); print_ans(max,maxl); } return 0;}
- uva103 - Stacking Boxes(动归,记忆化搜索)
- UVa 103 Stacking Boxes / 记忆化搜索
- UVa103 - Stacking Boxes
- uva103 - Stacking Boxes(DAG)
- [动态规划]UVA103 - Stacking Boxes
- UVA103 DP记忆化搜索
- Uva103 Stacking Boxes 贪心 深搜 +DP思想
- uva 103 Stacking Boxes dfs,记忆化
- UVA 103 Stacking Boxes (dp + DAG上的最长路径 + 记忆化搜索)
- UVA 103 Stacking Boxes 套箱子 DAG最长路 dp记忆化搜索
- hiho1233 Boxes 记忆化搜索
- Stacking Boxes
- Stacking Boxes
- DP 练习 uva103 Stacking Boxs
- 实验室(搜索->记忆化搜索->动规优化)
- rnqoj-49-加分二叉树-(区域动归+记忆化)
- 【区间动规】【记忆化搜索】[NOI1995]石子合并
- 【区间动规】【记忆化搜索】能量项链
- 山东省第四届acm省赛
- 如何通过DXperience TreeList展示数据表的上下级结构
- 手机连接PC通过串口发送PDU短信. 没有Iphone也可以欺骗了!
- windows phone:关于ListBox中item容器自动延展以填满空间
- The Property Function
- uva103 - Stacking Boxes(动归,记忆化搜索)
- App:Application 替换为 App:BaseApp
- 开源项目之Android undergarment(导航)
- jcifs的NTLMHTTP验证及所犯错误
- 重置mysql root 密码
- ConvertUtils 字符串和各种类型数据间进行转换
- 虚拟网络链接不上
- (2)Cocos2d-x在windows平台下的环境搭建
- Excel地址转换