原题链接:[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