DP-线性DP-数字三角形模型(路径DP)

文章讲述了如何使用动态规划方法解决数字三角形问题,涉及变式1的BFS模拟和取数问题,以及变式2中考虑同时走的四维状态优化,展示了在不同情境下的状态转移和路径计算策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以上是acwing的题谱

数字三角形

大致的题意就是给出一个n行的序列,序列的第i行有i个元素(i=1,2,3,...,n),需要你求出沿着这个序列从顶端走到底端元素和最大的一条路线

解题

给三角形的每一行每一列标上号,以当前位于第i行第j列来表示状态,用来的方向进行状态转移。

dp思路如下:

1.变式1

1.1摘花生

https://www.acwing.com/problem/content/1017/

有点类似于bfs走迷宫的问题,思路和朴素版差不多。这里更复杂的是可能会出现不同的情况,比如说某些格子不能走、不能重复走这些问题。

#include<iostream>
using namespace std;
const int N=110;
int T;
int dx[2]={-1,0},dy[2]={0,-1};
int m[N][N];
int f[N][N];
int main()
{
    scanf("%d",&T);
    while(T--)
    {
        int r,c;
        scanf("%d%d",
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值