原题链接:[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
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 > val[i];
for(int i = 1; i
关注
打赏
- 回坑记之或许是退役赛季?
- [LCT刷题] P1501 [国家集训队]Tree II
- [LCT刷题] P2147 洞穴勘测
- 2022-2023 ICPC Brazil Subregional Programming Contest VP记录
- [线段树套单调栈] 2019-2020 ICPC Asia Hong Kong Regional Contest H.[Hold the Line]
- The 2021 ICPC Asia Nanjing Regional Contest E.Paimon Segment Tree 区间合并线段树/维护矩阵乘法
- CF580E - Kefa and Watch 线段树维护哈希
- HDU5869 Different GCD Subarray Query 离线查询/区间贡献
- 27.CF1004F Sonya and Bitwise OR 区间合并线段树
- 26.CF1000F One Occurrence
