![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
DP
文章平均质量分 88
sususu814
焓变为负熵变为正。
展开
-
整数的划分-数的划分-放苹果
洛谷P1025数的划分洛谷P2386放苹果整数的划分是一类DP的经典题,也可用递归解决。数的划分:将整数ン分成KK份,且每份不能为空,任意两个方案不相同(不考虑顺序)。DFS版本:#include<bits/stdc++.h>#define maxn 100000+5#define INF 0x3f3f3f3f#define for1(i,l,r) for(...原创 2018-12-28 15:44:52 · 316 阅读 · 0 评论 -
动态规划:Maxumum Sum (多个最大子串)
Maxumum Sum (多个最大子串)题目链接:Maxumum Sum思路:决策第i个位置, 分为i之前最大的子段和, i之后最大子段和#include<bits/stdc++.h>#define maxn 50005#define INF 0x3f3f3f3f#define mst(a) memset(a,0,sizeof a)#define ll lon...原创 2019-03-17 21:12:27 · 157 阅读 · 0 评论 -
动态规划:最长上升子序列
最长上升子序列题目链接:最长上升子序列思路 :找出i前面的最大长度,使得dp[i]的能取到当前长度的最大值状态转移方程: dp[i] = max( dp[i] , dp[j]+1 ) j < i#include<bits/stdc++.h>#define maxn 2005#define INF 0x3f3f3f3f#define mst(a) memse...原创 2019-03-17 21:23:37 · 321 阅读 · 0 评论 -
最长公共子序列
最长公共子序列题目链接:最长公共子序列题目描述:现在给出两个序列X和Y,你的任务是找到X和Y的最大公共子序列,也就是说要找到一个最长的序列Z,使得Z既是X的子序列也是Y的子序列。思路:见注释#include<bits/stdc++.h>#define maxn 1005#define INF 0x3f3f3f3f#define mst(a) memset(...原创 2019-03-17 22:00:09 · 121 阅读 · 0 评论 -
动态规划:吃糖果
吃糖果题目链接:吃糖果思路:显然可以把吃的n个 看成 是上一天吃的n-2个 和上两天吃的n-2个转移过来的相同例题: 爬楼梯状态转移方程: ans[i] = ans[i-1] + ans[i-2]#include<bits/stdc++.h>#define maxn 200005#define INF 0x3f3f3f3f#define mst(a) memset(...原创 2019-03-17 22:09:43 · 512 阅读 · 0 评论