摘要:
传送门 好题啊 给定边权树 求隔离所有指定点的最小花费 考虑树dp的话 自然想到 f[x]表示子树内处理完从根节点出发没有敌人的最小花费 g[x]表示子树内处理完从根节点出发仍有敌人的最小花费 这个时候仍然合法() 又显然根节点是否有敌人是有影响的 所以分类讨论 首先子树没有敌人不用考虑 I. 根节 阅读全文
摘要:
传送门 又一个没有上司的舞会 这个dp有环 妈妈怎么办啊 要不...环上随便断一条边? 然后最后选的时候分别取两个根节点不选的情况的最大值 几个要点: 1.图可能是多个环套树 要循环走完 2.不能只记录顶点 因为如果有重边的话会把二元环筛掉 3.位运算优先级... 要写成(i^1)==cntline 阅读全文
摘要:
传送门 我才不会说我这个题D了好久 区间dp可是一大骗分利器 要写熟练 如果第一层循环要枚举长度真的不如记搜 Time cost: 25min 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<cmath> 阅读全文
摘要:
传送门 我再做高精就**** 基础dp 然后直接*2^80就暗示高精 然后40min写完之后就一直不过样例... 最后发现自己比较大小从右往左比较的... 窒息 赶紧更自己的板子 本身来讲记忆化搜索更适合状压dp和区间dp 一类树形dp也非常好用 所以这题就记搜(反正都没啥代码难度) 哦除了高精 算 阅读全文
摘要:
传送门 明显的生成树 所以矩阵统计完全图的生成树计数就OK ......原地懵逼 并不会行列式 等等 完全图 果断列了一个矩阵(主对角线N*(N-1)/2,其他(N-1)) (当然是3*3矩阵和4*4矩阵) 然后搞了一个互相推 ....30minutes later...... 两个矩阵推不出来 试 阅读全文
摘要:
传送门 树形dp基础题 求带点权树直径 然后这个点权就是每个点的点度(son[])... 所以可以简化一下 按照正常的套路维护从根开始的最长链和次长链 dp数组存的时候+1改成+son[x]-1就可以了 所以dp[x] = maxx + maxxx + son[x] - 1 (maxx 和 maxx 阅读全文
摘要:
传送门 比较奇怪的树形背包 首先需要处理读入的问题 这题史诗递归读入 然后递归读入就不用建图 这题特点是只有叶子有价值 所以背包就不太有用 坑点就是这个人进去还得出来... 而且不能把时间都用完(导致75) Time cost: 35min Code: 1 #include<cstdio> 2 #i 阅读全文