poj3003&2397 DP 记录路径
2012-03-02 11:01
204 查看
这两题是一模一样的
最近做了好多这种背包的题,但是这题需弄清的地方还是不少,有些绕
f[][]数组其实是可以省的
最近做了好多这种背包的题,但是这题需弄清的地方还是不少,有些绕
f[][]数组其实是可以省的
#include <iostream> #define oo 10000000 using namespace std; int cas,n,a[1010],p,q,dp[2][1010],pre[41][1010]; bool f[2][1010],ans[41]; int main() { scanf("%d",&cas); while (cas--) { scanf("%d",&n); for (int i=1;i<=n;i++) scanf("%d",&a[i]); for (int i=0;i<1010;i++) dp[0][i] = 0; memset(f[0],0,sizeof(f[0])); f[0][0] = true; p = 1; q = 0; for (int i=1;i<=n;i++) { memset(f[p],0,sizeof(f[p])); for (int j=0;j<1010;j++) dp[p][j] = 0; for (int j=0;j<1010;j++) if (f[q][j]) { if (j+a[i]<1010) { if (!f[p][j+a[i]]) { dp[p][j+a[i]] = max(j+a[i],dp[q][j]); f[p][j+a[i]] = true; pre[i][j+a[i]] = j; } else if (dp[p][j+a[i]]>max(j+a[i],dp[q][j])) { dp[p][j+a[i]] = max(j+a[i],dp[q][j]); pre[i][j+a[i]] = j; } } if (j-a[i]>=0) { if (!f[p][j-a[i]]) { dp[p][j-a[i]] = max(j-a[i],dp[q][j]); f[p][j-a[i]] = true; pre[i][j-a[i]] = j; } else if (dp[p][j-a[i]]>max(j-a[i],dp[q][j])) { dp[p][j-a[i]] = max(j-a[i],dp[q][j]); pre[i][j-a[i]] = j; } } } p = 1 - p; q = 1 - q; } if (dp[q][0]==0) printf("IMPOSSIBLE\n"); else { memset(ans,0,sizeof(ans)); int i = n, h = 0; while (i!=1) { ans[i] = (pre[i][h]>h); h = pre[i][h]; i--; } for (int i=1;i<=n;i++) if (!ans[i]) printf("U"); else printf("D"); printf("\n"); } } return 0; }
相关文章推荐
- hdu1160 FatMouse's Speed--DP&记录路径
- ural1183&&poj1141 Brackets Sequence(区间DP+记录路径)
- POJ1787:Charlie's Change(记录路径的多重背包)
- bzoj4200 [Noi2015]小园丁与老司机(dp+记录路径+有源汇有上下界最小流)
- 杭电1224 DP+记录路径
- HDU 1160 FatMouse's Speed (最长上升子序列+记录路径)
- dp问题中记录路径的方法
- URAL 1183.Brackets Sequence ( DP+记录路径)
- hdu1074 状态压缩dp 记录路径
- hdu 1160 dp (二维最长上升子序列 记录路径
- HDOJ 1385 Minimum Transport Cost (最短路 Floyd & 路径记录)
- URAL 1078. Segments(记录路径的简单dp)
- poj 1141 (区间dp记录路径问题)
- poj1141Brackets Sequence【区间dp+路径记录】
- hdu1074 状态压缩dp 记录路径
- hdu 1160 dp (二维最长上升子序列 记录路径
- (常复习)poj 1015 dp+记录dp路径+转变最优子结构+区间映射
- Codeforces 454D Little Pony and Harmony Chest【思维+状压Dp+记录路径】好题!
- POJ 1141 / UVa 1626 Brackets Sequence (区间DP&打印路径)
- POJ 3984--迷宫问题【BFS && 记录路径】