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 · 331 阅读 · 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 · 164 阅读 · 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 · 329 阅读 · 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 · 126 阅读 · 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 · 532 阅读 · 0 评论