随笔分类 - 树形DP
摘要:#写在前面 大概是高中退役之后第一次写写题解,当然要从基础写起,因为变得更菜了,所以只能写写更水的题目了 #题目链接 ICPC南京M #题解 f(i,j,k)节点i 当前节点是否存活 i及子树内的节点存活数 该状态的所以需要的最小能量值 #代码 #include<bits/stdc++.h> #de
阅读全文
摘要:题目链接 "bzoj1722: [Usaco2006 Mar] Milk Team Select 产奶比赛" 题解 dp[i][j][0 / 1] 以i为根的子数中 相邻点对选了j个的最大价值 代码
阅读全文
摘要:题目链接 "CF 633 F. The Chocolate Spree" 题解 维护子数答案 子数直径 子数最远点 单子数最长直径 (最长的 最远点+一条链) 讨论转移 代码 c++ include include include define gc getchar() define pc putc
阅读全文
摘要:题目链接 "loj 2009. 「SCOI2015」小凸玩密室" 题解 树高不会很高 include using namespace std; inline int read() { int x = 0,f = 1; char c = getchar(); while(c '9')c = getch
阅读全文
摘要:题目链接 "CF23 E. Tree" 题解 CF竟让卡常QAQ dp+高精度 dp[x][j]表示以x为根的子树,x所属的联通块大小为j,的最大乘积(不带j这块 最后f[x]维护以x为根的子树的最大答案 有点卡内存...高精压了4位 看了题解,了解到,其实这个dp的复杂度其实是O(n^2) 每次转
阅读全文
摘要:题目链接 "bzoj4016: [FJOI2014]最短路径树问题" 题解 对于建树 dij建出最短路图 在最短路图上dfs,先走字典序最小的可达点 得到最短路树 然后就是经典的点分治了 维护每个深度的最远距离合并就好了 代码 c++ include include include include
阅读全文
摘要:题目链接 "bzoj1131: [POI2008]Sta" 题解 树形dp,我们可以预处理以1为根子树大小与ans,然后就可以O1转移 代码 c++ / 我们可以预处理以1为根子树大小与ans,然后就可以O1转移 / include include include const int maxn =
阅读全文
摘要:题目链接 "bzoj4033: [HAOI2015]树上染色" 题解 对与每条边贡献dp,树形背包 然后开始写成了每条边对于子树的贡献,然后写挂了别的地方,然后lg上莫名其妙的过了许多别的点 然后发现似乎神奇的性质...有空出道题2333 bzoj有些卡常数 代码 c++ include inclu
阅读全文
摘要:题目链接 "bzoj1040: [ZJOI2008]骑士" 题解 讨厌关系出度为0,可能有环,并且每个联通块内只有一个环 没有自环 构成基环树森林 选取骑士不能去相邻的 考虑将一个联通块中的环断开,这样就构成一棵树,对于断开的边相连的点分别不取,进行dp 答案就是每个联通块的贡献和 代码 c++ i
阅读全文
摘要:100 + 30 + 0 T1 叉叉 题目描述 现在有一个字符串,每个字母出现的次数均为偶数。接下来我们把第一次出现的字母a和第二次出现的a连一条线,第三次出现的和四次出现的字母a连一条线,第五次出现的和六次出现的字母a连一条线...对其他25个字母也做同样的操作。现在我们想知道有多少对连线交叉。交
阅读全文

浙公网安备 33010602011771号