区间dp动态规划(上篇)

今天的主题就是这个啦(感谢我亲爱的学校,让我能翘晚自习搞信息)。

区间dp就是在一个很窄很窄的矩阵里面(线性结构)(我写的都是我自己的理解,语言毫无规范可言)进行的操作,将它按特定要求分割开来,然后不同地方分割会有不同的收益,而我们的目标是让这个收益值最大(通常,话不能说太满)。

先上个模板(我用的是c++)

	vector<vector<int>> dp(n, (n, 0)); 
	// 定义+初始化(用vector是因为初始化方便,它跟数组没太大区别)
	int j; // 后面要用 
	for(int L=2; L<=n; L++)  // 枚举长度 
		for(int i=0; i-L+1<n; i++) // 枚举起点 
		{
			j=i+L-1; // 算出终点
			for(int k=i+1; k<j; k++) // 寻找最优分割点 
				dp[i][j]=max(dp[i][j], dp[i][k]+dp[k+1][j]+???);
				 // 找最大???的情况 
		}

开始做题(我的题可能不是经典的,但都是我觉得有质量的)

下一篇推题目+题解

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值