会员
周边
新闻
博问
闪存
众包
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
YHXo
博客园
首页
新随笔
联系
订阅
管理
上一页
1
···
9
10
11
12
13
14
15
16
17
···
22
下一页
2022年6月24日
POJ3585 Accumulation Degree (树形DP-二次扫描与换根)
摘要: 本题属于不定根的树形DP,若以每个节点为根求解一次,复杂度太高,所以可以用换根的技巧。 d[u]表示以u为根向下可以流的最大流量,这个是比较好求的,直接遍历到叶子节点,由子节点信息更新父节点。然后进行第二次遍历,从上往下,子节点的信息由父节点更新。 这就是换根法的基本思路。 本题转移方程还是比较好想
阅读全文
posted @ 2022-06-24 18:07 YHXo
阅读(40)
评论(0)
推荐(0)
2022年6月18日
HDU1561 The more, The Better(树形背包)
摘要: 通过这道题对树形背包理解更深一步...... 有几个地方需要注意: 1.本题数据结构为森林,需增加一个超根作为根节点,M+=1(后面解释)。 2.本题有拓扑序的限制,通过vector建成的一棵树中,必须父节点选择了之后才可以往下选择孩子节点。 3.在以v为根的子树中选择k个节点,k必然小等于v的子树
阅读全文
posted @ 2022-06-18 16:38 YHXo
阅读(38)
评论(0)
推荐(0)
HDU3506 Monkey Party (区间DP)
摘要: 一道好题...... 首先要将环形转化为线形结构,接着就是标准的区间DP,但这样的话复杂度为O(n3),n<=1000,要超时,所以要考虑优化。 dp[i][j]=min( dp[i][k]+dp[k+1][j]+sum(i,j) ),我们通过证明sum(i,j)满足四边不等式和区间包含单调性,从而
阅读全文
posted @ 2022-06-18 15:50 YHXo
阅读(39)
评论(0)
推荐(0)
HDU2041 超级楼梯 (线性DP)
摘要: fn[i]表示走上第i级台阶的所有走法。 方程:fn[i]=fn[i-1]+fn[i-2]; 1 #include<cstdio> 2 #define MAXN 40 3 using namespace std; 4 typedef unsigned long long LL; 5 LL fn[MA
阅读全文
posted @ 2022-06-18 15:04 YHXo
阅读(52)
评论(0)
推荐(0)
HDU1712 ACboy needs your help(分组背包)
摘要: 每种课程学习不同天数可以获得不同价值,这可以看成一个组,那么题目就是分组背包的模板题了。 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #define maxn 105 5 using namespace std; 6
阅读全文
posted @ 2022-06-18 14:56 YHXo
阅读(29)
评论(0)
推荐(0)
HDU2844 Coins(多重背包)
摘要: 多重背包就是每种物品有数量限制时求解最大价值。 如果一种物品数量和重量之积超过背包容量,可视为完全背包;其余情况通过二进制拆分,将几个数量的物品看成一个,转化为01背包求解。 按照这种思路代码是这样的: 1 #include<cstdio>//多重背包,二进制拆分 2 #include<cstrin
阅读全文
posted @ 2022-06-18 14:43 YHXo
阅读(48)
评论(0)
推荐(0)
HDU1114 Piggy-Bank (完全背包)
摘要: 完全背包模板,和01背包相比不用倒推,因为一种可以选多个。 这道题求最小,dp数组初始化为无穷即可。 1 #include<iostream> 2 #include<cstring> 3 #include<algorithm> 4 using namespace std; 5 const int M
阅读全文
posted @ 2022-06-18 14:14 YHXo
阅读(74)
评论(0)
推荐(0)
HDU2602 Bone Collector(01背包)
摘要: 01背包模板题。 1维数组倒推。 1 #include<iostream> 2 #include<cstring> 3 #include<algorithm> 4 using namespace std; 5 #define M 1005 6 int dp[M]; 7 int val[M],v[M]
阅读全文
posted @ 2022-06-18 11:59 YHXo
阅读(26)
评论(0)
推荐(0)
POJ2486 Apple Tree(树形背包)
摘要: 从每个节点u出发后有两种情况:回到u和不回到u。 dp数组设为三维,第一维是节点编号,第二维是从该节点开始走的步数,第三维1/0 表示是否回到该节点。 可以回到时:dp[u][j][1]=max(dp[u][j][1],dp[u][j-t][1]+dp[v][t-2][1]); 不能回到时,分为两种
阅读全文
posted @ 2022-06-18 11:51 YHXo
阅读(48)
评论(0)
推荐(0)
POJ3398 Perfect Service (树形DP)
摘要: 对于每个u要设置三维。 dp[u][0]表示u是服务器,以u为根的最小服务器数,其子节点既可以是,也可以不是,dp[u][0]+=min(d[v][0],d[v][1]); dp[u][1]表示u不是服务器,但他的父节点时,此时u的子节点都不可能是,dp[u][1]+=dp[v][2]; dp[u]
阅读全文
posted @ 2022-06-18 10:52 YHXo
阅读(48)
评论(0)
推荐(0)
上一页
1
···
9
10
11
12
13
14
15
16
17
···
22
下一页
公告