1 2 3 4

随笔分类 -  树形DP

摘要:https://ac.nowcoder.com/acm/contest/5389/D 我也不敢说我学会了,说说总结的经验吧。 当假设dp[a][b],dp内部状态是小于等于b的时候,不必枚举b,只要让b尽可能大然后取dp[a][b] = min(dp[a][b-1],dp[a][b])就行了 应该就 阅读全文
posted @ 2020-12-05 17:16 Lesning 阅读(77) 评论(0) 推荐(0) 编辑
摘要:基环树的最大独立集 正解就是从环上找相邻两点s,t,求出分别以s和t为根,求max(dp[s][0],dp[t][0]) 这就是答案。因为s和t不能同时选,那只要有一个不选就行。 我的解法是单独求基环树上的点。。。。。很捞 我的写法 #include<iostream> #include<strin 阅读全文
posted @ 2020-12-03 21:15 Lesning 阅读(74) 评论(0) 推荐(0) 编辑
摘要:http://codeforces.com/problemset/problem/461/B 感觉这题有点玄学阿。。。。。怎么说呢。。。 状态1是x在有黑色的区域里面,状态0是只在白色区域里面,其实看一眼代码就懂了,一直想不出来我很难过。。。。 好菜呀,还要继续学树形dp才行阿 #include<i 阅读全文
posted @ 2020-11-29 14:21 Lesning 阅读(77) 评论(0) 推荐(0) 编辑
摘要:给一堆数字,每个数字找和自己异或最小的连接,现在求删除最少几个点能留下一棵树 就是分治搞树,第i位置都是0的之间有边,i位为1的数字之间有变,类似树形dp的分治一下就得出结论了, 第i为是1的要和第i为是0的连接,只能是i位为1的集合都消除了才可能,具体看代码吧,挺简单的。。。。 #include< 阅读全文
posted @ 2020-11-18 21:05 Lesning 阅读(254) 评论(0) 推荐(0) 编辑
摘要:这是一个非常有趣(not intersting)的题 传送门 https://www.luogu.com.cn/problem/P6554 dp[x] = sigm dp[p] + list[x]*cnt[x] ans = dp[x] / cnt[x] 利用换根dp枚举一下就好了,转移有点恶心,因为 阅读全文
posted @ 2020-11-02 22:34 Lesning 阅读(85) 评论(0) 推荐(0) 编辑
摘要:https://codeforces.com/problemset/problem/1436/D 这题就是让村名尽可能集中在叶子上,但是可能叶子上本来就有很多村民,就是这样。 假设 1. mx[x]为在x点可以抓到的最多的人 2. chal[x]为 在x点还差chal[x]人就可以让x下面所有叶子都 阅读全文
posted @ 2020-10-27 19:02 Lesning 阅读(182) 评论(0) 推荐(0) 编辑
摘要:太可惜了,难过 真的难受啊 对于树上三个点a,b,c 汇于一个点的最短路和 ans,有dis(a,b) + dis(b,c) + dis(c,a) = ans * 2 知道这个以后就可以用换根dp解决了,假设dp[x][i]表示所有i颜色的节点到x的距离和 具体可以看代码, 注意答案会爆long l 阅读全文
posted @ 2020-10-26 20:41 Lesning 阅读(649) 评论(0) 推荐(0) 编辑
摘要:https://www.luogu.com.cn/problem/CF1249F 这题看题解云里雾里的,我自认为我写的比较简单; dp[x][i]表示以x为根,选中节点离x最近距离为i。(最小深度) 那么如何转移呢? 答案无非就是两种方式构成的,原来子树上就有,两棵树合并而成。于是就有了下面的式子 阅读全文
posted @ 2020-10-24 10:08 Lesning 阅读(155) 评论(0) 推荐(0) 编辑
摘要:https://www.luogu.com.cn/problem/P1272 一个神奇的树形dp,大概就是下面这样转移的吧 dp[x][i]表示x为根,保留i个点最少删除几条边 #include<iostream> #include<vector> #include<algorithm> #incl 阅读全文
posted @ 2020-10-23 20:36 Lesning 阅读(102) 评论(0) 推荐(0) 编辑
摘要:https://www.luogu.com.cn/problem/P3761 这是个神仙题,会卡常 题目让你改一条边把直径变得最短。 枚举每条边,会把图分成两个地方,两个连通块(x区和y区域)都换根dp一下,算出离x最远的点的距离记为dis【x】。然后枚举一下 新直径有三个来源 1 max dis[ 阅读全文
posted @ 2020-09-17 12:06 Lesning 阅读(163) 评论(0) 推荐(0) 编辑
摘要:https://codeforces.com/contest/1405/problem/D 我是zz,看错题了,其实就两种可能 1.开局直接被抓住 disA >= dis(a,b) 2.逃跑,但是如何跑呢?我们发现,db >= 2*da + 1就能跑的了,因为db小的化迟早会被抓住,放风筝就好了,看 阅读全文
posted @ 2020-09-10 21:36 Lesning 阅读(189) 评论(0) 推荐(0) 编辑
摘要:https://ac.nowcoder.com/acm/contest/7016/E 这题真没想到 考虑一个问题,删除边对极差的影响, 无论如何删除边都有办法不让让答案变大(可能相等) 利用二分答案,每次算出mid都跑一次dp看看能不能k条边以内完成,dp[x][i]表示以x为根的子树,所有点的数值 阅读全文
posted @ 2020-08-20 00:47 Lesning 阅读(115) 评论(0) 推荐(0) 编辑
摘要:神奇的树形DP+二分图最大权值匹配转移 dp[x][y]表示以左边的树x为根,右边的树y为根,他们有dp[x][y]个序号是重合的,若x和y不同构那就dp[x][y] = -INF; 如何转移? 给x的儿子们和y的儿子们建个二分图跑最大权值匹配,跑下来的最大权值就是儿子们的答案,很好笑,但是复杂度有 阅读全文
posted @ 2020-08-11 16:44 Lesning 阅读(320) 评论(0) 推荐(0) 编辑
摘要:题链接 https://nanti.jisuanke.com/t/39277 好久不见我又回来了,这题要考虑他在问啥。这题要找子路径包含 异或和为0的路径 的路径的数量,而且有些许重复,枚举所有异或和为0 的路径,把他们的所有父路径列出来。 题解 如果x p在一条链子上,那就(siz[p])*( n 阅读全文
posted @ 2020-07-07 17:29 Lesning 阅读(177) 评论(0) 推荐(0) 编辑
摘要:“科林明伦杯”哈尔滨理工大学第十届程序设计竞赛(同步赛) 换根来一波 https://ac.nowcoder.com/acm/contest/5758/A #include<iostream> #include<algorithm> #include<cstring> using namespace 阅读全文
posted @ 2020-05-31 17:15 Lesning 阅读(185) 评论(0) 推荐(0) 编辑
摘要:https://ac.nowcoder.com/acm/contest/5556/A 代码今天晚上补完 #include<iostream> #include<cstring> #include<algorithm> #include<queue> #include<vector> using na 阅读全文
posted @ 2020-05-08 18:38 Lesning 阅读(150) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6035一棵n个结点的树,每个结点都有颜色,定义两点之间的路径长度为路径上出现的不同颜色数目,求树上所有路径的长度和。 https://blog.csdn.net/Bahuia/article/detail 阅读全文
posted @ 2020-05-06 21:38 Lesning 阅读(121) 评论(0) 推荐(0) 编辑
摘要:https://ac.nowcoder.com/acm/problem/13611 其实把,把树分成k个连通块有几种分配方法= 从树上取下k-1条边有几种取法,排列组合就行了,,,,,, #include<iostream> #include<algorithm> using namespace s 阅读全文
posted @ 2020-04-12 18:12 Lesning 阅读(132) 评论(0) 推荐(0) 编辑
摘要:https://ac.nowcoder.com/acm/contest/5086/C 其实不难,让a堵在c到1的毕竟之路上就好了,需要注意,若是a和c同时到1号点就是no,同时到其他点就是yes。。。。坑了好久我的妈呀 代码公式含义:len a到c 1的必经路的长度,假设到x点 ans b到c加上c 阅读全文
posted @ 2020-04-07 21:56 Lesning 阅读(147) 评论(0) 推荐(0) 编辑
摘要:https://ac.nowcoder.com/acm/problem/13249 #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #include<vector> using namespace s 阅读全文
posted @ 2020-04-07 18:58 Lesning 阅读(141) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示