rqnoj 496 [IOI1999]花店橱窗布置 (简单dp)
来源:互联网 发布:php购物车提交订单 编辑:程序博客网 时间:2024/05/01 15:37
很水,我却做了很久,唉,细节的东西没处理好。。。
又要顺序又要最大的,看上去感觉就和LCS一样,很容易想出状态转移公式:dp[i,j] = max{dp[i - 1][j - 1] + a[i][j], dp[i - 1][j]}.
AC代码如下:
#include <cstdio>const int maxn = 100 + 10;const int min = -1000000;int a[maxn][maxn] = {0};int dp[maxn][maxn];bool path[maxn][maxn] = {0};void pt(int i, int j){//find pathif (i == 0)return;if (path[i][j] == 1){pt(i - 1, j - 1);printf("%d ", j);}elsept(i, j - 1);return;}int main(){int f, v;int i, j;scanf("%d%d", &f, &v);for (i = 1; i <= f; i++)for (j = 1; j <= v; j++)scanf("%d", &a[i][j]);for (i = 1; i <= f; i++)for (j = 0; j <= v; j++)dp[i][j] = min;//inifor (i = 1; i <= f; i++)for (j = i; j <= v && i <= i + f; j++)if (dp[i - 1][j - 1] + a[i][j] <= dp[i][j - 1])dp[i][j] = dp[i][j - 1];elsedp[i][j] = dp[i - 1][j - 1] + a[i][j], path[i][j] = 1;printf("%d\n", dp[f][v]);pt(f, v);return 0;}
恩。。。复杂度o(n^2),还好,因为数据小,寻址用递归做。
wa了几次,由于如下原因:
1.没有把dp初始化成极小,导致前面的花瓶没有被插到花
2.本来想仅初始化必要的数值,减小不必要的开销,但老是被一点卡住。
3.题目说输出任何一种方案即可,但是我设定如果dp比较相等时取它对角的前一个,就被一个点卡住了。很坑啊。。。
额,以后做题要细心了。。
- rqnoj 496 [IOI1999]花店橱窗布置 (简单dp)
- [IOI1999]花店橱窗布置(DP路径记录)
- RQNOJ 花店橱窗布置
- 【DP】 花店橱窗布置
- 花店橱窗布置【DP】
- IOI 1999 花店橱窗布置(DP)
- DP之花店橱窗布置
- IoI99_花店橱窗布置问题(普通DP)
- DP练习1:花店橱窗布置
- 洛谷 P1854 花店橱窗布置 【dp】
- ssl1626-花店橱窗布置【日常dp】
- 花店橱窗布置问题
- 花店橱窗布置(IOI)
- IOI 花店橱窗布置
- 花店橱窗布置
- P1854 花店橱窗布置
- 花店橱窗布置
- 【动态规划】花店橱窗布置
- PE
- C++ 虚函数
- hadoop 大数据开发3---HBase 安装步骤
- linux中搭建MongoDB Replset
- Jump Game II
- rqnoj 496 [IOI1999]花店橱窗布置 (简单dp)
- WinDBG 的首选资源
- jquery实现帮侧悬浮可收缩层
- 20个Android很有用的代码片段
- RHEL6 修改口令报错passwd: Authentication token manipulation error
- php调试与优化
- 海量数据处理 ——bloom filter
- HDU/HDOJ 1241 Oil Deposits (DFS)深度优先搜索
- [Eclipse]win下设置源码文件编码为UTF8