原题链接:[P2196 NOIP1996 提高组] 挖地雷 - 洛谷)

题目分析

看到这道题,首先感觉是个搜索,如果数据范围不大应该没问题。但是,,,我没找到数据范围啊喂~

那就动态规划一下,先用二维数组存一下联通性,然后用 d p [ i ] dp[i] dp[i]表示以第 i i i个地窖结尾的最大值,则不难推出状态转移方程:
d p [ i ] = m a x ( d p [ j ] + v a l [ i ] , d p [ i ] ) dp[i] = max(dp[j] + val[i], dp[i]) dp[i]=max(dp[j]+val[i],dp[i])
此外,由于要输出路径,因此需要额外记录前驱,前驱可以递归输出,也可以打循环转制输出。

AC Code

#include <bits/stdc++.h>
using namespace std;
const int N = 30;
int val[N], g[N][N], dp[N], q[N], fro[N];
int ans = 0;int main(){int n = 0; cin >> n;for(int i = 1; i <= n; i++) cin >> val[i];for(int i = 1; i <= n; i++) dp[i] = val[i];for(int i = 1; i <= n - 1; i++){for(int j = i + 1; j <= n; j++) cin >> g[i][j];}for(int i = 1; i <= n; i++){for(int j = 1; j < i; j++){if(g[j][i] && dp[j] + val[i] > dp[i]){dp[i] = dp[j] + val[i];q[i] = j;}}}int x = 0, tot = 0;for(int i = 1; i <= n; i++) if(dp[x] < dp[i]) x = i;ans = dp[x];while(x){fro[++tot] = x;x = q[x];}for(int i = tot; i >= 1; i--) cout << fro[i] << ' ';cout << endl;cout << ans << endl;return 0;
}

P2196 [NOIP1996 提高组] 挖地雷 线性动态规划DP 题解相关推荐

  1. 洛谷 P2196 [NOIP1996 提高组] 挖地雷(dp简单题)

     题目链接: [NOIP1996 提高组] 挖地雷 - 洛谷 思路: 典型的dp题,由于题目规定了只能由编号小的地窖到编号大的,所以dp顺序是确定的,不需要进行拓扑排序,只需要判断 i,j 之间是否有 ...

  2. 2022.12.1洛谷P2196 [NOIP1996 提高组] 挖地雷

    [NOIP1996 提高组] 挖地雷 原题链接:传送门 在一个地图上有N个地窖,每个地窖中埋有一定数量的地雷.同时,给出地窖之间的连接路径.当地窖及其连接的数据给出之后,某人可以从任一处开始挖地雷,然 ...

  3. [NOIP1996 提高组] 挖地雷 (动态规划)

    燃 烧 的 大 脑 - - 动 态 规 划 燃烧的大脑--动态规划 燃烧的大脑--动态规划 题目大意: 洛谷例题题目传送门!!! 解题思路: 挖地雷,拥有最优子结构和无后效性特征,考虑DP. 那么接下 ...

  4. P2196 [NOIP1996 提高组] 挖地雷

    P2196 挖地雷 题目大概意思是给你所有地窖的连接路径,让你选择一条路径使挖到的地雷最多,需要注意的点是这题题目没怎么说清楚,它实际是一个有向图(我一开始当无向图写了半天,死活过不了,最后改成有向图 ...

  5. [NOIP1996 提高组] 挖地雷(C++,DP)

    题目描述 在一个地图上有NNN个地窖(N≤20)(N \le 20)(N≤20),每个地窖中埋有一定数量的地雷.同时,给出地窖之间的连接路径.当地窖及其连接的数据给出之后,某人可以从任一处开始挖地雷, ...

  6. P1063 [NOIP2006 提高组] 能量项链 区间dp

    题目链接 题目描述 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N颗能量珠.能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数.并且,对于相邻的两颗珠子,前一颗珠子的 ...

  7. 【NOIP2015提高组】子串 区间DP+滚动数组优化

    题意: 有两个仅包含小写英文字母的字符串 A 和 B. 现在要从字符串 A 中取出 k 个互不重叠的非空子串,然后把这 k 个子串按照其在字符串 A 中出现的顺序依次连接起来得到一个新的字符串. 请问 ...

  8. 牛客网CSP-S提高组赛前集训营1题解(仓鼠的石子游戏 [博弈论] + 乃爱与城市的拥挤程度 [树上DP] + 小w的魔术扑克[dfs + 离线])

    文章目录 T1:仓鼠的石子游戏 题目 题解 代码实现 T2:乃爱与城市拥挤程度 题目 题解 代码实现 T3:小w的魔术扑克 题目 题解 代码实现 T1:仓鼠的石子游戏 题目 仓鼠和兔子被禁止玩电脑,无 ...

  9. P2831 [NOIP2016 提高组] 愤怒的小鸟 状压dp

    某谷链接 题意:选最少的抛物线来覆盖所有点. 注意到a<0,所以我们可以枚举两个点来构成一条抛物线,让后记这两个点构成的抛物线为 cov[i][j]cov[i][j]cov[i][j],让后他存 ...

最新文章

  1. 使用Struts2标签遍历集合
  2. psd页面切割成html技巧总结
  3. MySQL查询count(*)、count(1)、count(field)的区别收集
  4. 网站视频解析 有的url资源放在浏览器能直接播放,有的却不行。
  5. c++面向对象高级编程 学习十三 数量不定的模板参数,auto,for
  6. mysql pdm_mysql 生成pdm
  7. mongodb副本集修改配置问题
  8. 1 利用Anaconda完美解决Python 2与python 3的共存问题
  9. OpenStack 已死?
  10. 【2】Keras之激活函数
  11. php写幻灯片,原生JS写的幻灯片
  12. html个人主题制作,个人网页制作
  13. CTF训练(密码学)——位移密码
  14. 最小二乘法 c 语言程序,最小二乘法的嵌入式C语言实现
  15. 如何实现chrome谷歌浏览器多开(独立环境 独立cookie)
  16. python进行独立样本t检验
  17. Vscode 修改左侧 资源管理器的面板大小
  18. 安装笔记本内存条及认识内存插槽
  19. 12.6学习笔记 HTML5表单元素/嵌入图片/视频(未完)
  20. 4.Vue指令(Directives)

热门文章

  1. 【人工智能AI】MaaS:模型即服务的未来已来
  2. java dwr 漏洞_Java DWR内存泄漏问题解决方案
  3. 求求你们了,MyBatis 批量插入别再乱用 foreach 了,5000 条数据花了 14 分钟。。
  4. 细说——CS联动MSF
  5. Grep 命令的15种常用用法(值得收藏)
  6. MSP430单片机各种寄存器总结(7)——USCI_A in UART mode
  7. 饮用水中的砷,硝酸盐超标带来的危害以及解决工艺
  8. OPPO推出全新“Reno”系列 定位高端旗舰
  9. mysql:mbind: Operation not permitted
  10. HTML表单(form)