![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划
文章平均质量分 65
记录本废物学习dp的过程
KaaaterinaX
我是废物
展开
-
2021-7-21 又回到树形dp的恐怖世界www
树形dp就是在一棵树上跑动态规划,通常用到dfs等方法实现。 这篇博客就是记录我刷的树形dp,刷题路线参考了聚聚的博客: 【DP_树形DP专辑】 一、常规树形dp 1、求树的重心 这个非常非常基础,同时在很多较复杂的题目中需要用到这个方法解决降低复杂度。 ...原创 2021-07-22 12:13:58 · 105 阅读 · 2 评论 -
Educational Codeforces Round 109 (Rated for Div. 2)
日常废物。。(ABC先欠着,C写完马上补) A.Potion-making 。。。。。 约分的应用,听简单的,没啥事了。。 int gcd(int a,int b){ if(b==0){ return a; } else{ return gcd(b,a%b); } } int main(){ int t; cin>>t; while(t--){ int k; cin>&g原创 2021-05-17 19:32:56 · 79 阅读 · 0 评论 -
dp入门 2021-2-8
dp要开始了吼QwQ 记录学习历程,写写自己的理解(´・Д・)」 例题1、 数字三角形 poj1163 The Triangle 方法1: 递归的思想 设点为D(i,j),i/j从1开始,每次取max(maxsum(i+1,j),maxsum(i+1,j+1)),开始递归。 这样写容易理解,但是复杂度巨大,必超时。 方法2: 为了避免重复计算,每次都记录算好的值。 代码实现: int D[105][105]; int maxsum[105][105]; int n; int Maxsum(int i,in原创 2021-02-08 16:56:53 · 152 阅读 · 0 评论 -
记录一些有点难(指我不会写的)的dp
Gift Hunting 好神奇,一开始以为是标记两个背包的状态,结果发现根本没法处理某个物品放在了哪个物品。。 还没写完,稍微想一下思路大概就是先处理必须选择的物品,然后标记这个物品,在状态转移中不能把这个物品删掉。 const int maxn=500; int p[maxn],h[maxn]; bool s[maxn]; int main(){ int v1,v2,n; while(cin>>v1>>v2>>n){ if(v1==v原创 2021-07-15 20:42:59 · 131 阅读 · 4 评论 -
2021-07-02 暑训开端——重见dp
一、背包问题全集 1、01背包 每个物品只有一个 2、完全背包 每个物品有无限个 3、多重背包 每个物品有有给定数目个 4、分组背包 有多组物品,每组只能选x个原创 2021-07-04 23:28:33 · 114 阅读 · 0 评论