hdu1176(二维dp思路讲解)(详细注释)

博客介绍了如何运用二维动态规划解决HDU1176问题,强调了当常规一维状态无法解决问题时考虑升维的重要性,并提到在权衡时空复杂度与状态表示的巧妙性。博主分享了自己ACM竞赛的经验,虽然最终选择放弃,但仍会继续分享适合非专业选手的算法题,保持详尽的注释解析。
摘要由CSDN通过智能技术生成

没听说过二维dp前根本想不出来啊!!!!
下面附上老师结合本题对二维dp讲解:
通常而言,如果用1个整数状态的方程 写不出来,就用2个整数,也就是升维
•2个写不出来,就用3个,以此类推
•但是升维会严重消耗时空,通常需要 结合数据范围来进行判定:
•到底是应该升维还是需要寻找更巧妙 的状态表示与规划目标
•在接馅饼这道题中,馅饼的数量显然 与位置也有关
•因此这道题的状态要用2个数表示,目 标记作Dtx,Dtx表示在t时刻、x位置能 够接到的最大数量

#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
#define MAXN 100010
using namespace std;

int dp[MAXN][12],pile[MAXN][12];

///全局变量和静态变量的存储区域是在一起的,程序结束后由系统释放。数据区的大小由系统限定,一般很大。

int max_is(int a,int b,int c);

int main(){
   

    int n,x,t
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值