01 2019 档案
摘要:传送门 发现 $k<=10^9<13!$ 所以只有最后几位会变 前面一大段都是固定的 考虑求前面一大段的贡献 $n$最大就 9 位,直接数位DP就好了(爆搜也是可以的) 考虑后面几位的贡献 用逆康托展开求出每一位的值然后暴力判断就好了 代码有一些细节:
阅读全文
摘要:传送门 斯坦纳树 给一个联通图,求 $k$ 个关键点联通的最小生成树权值 设 $f[o][i]$ 表示当前关键点选择状态为 $o$ ,以点 $i$ 为根的树的最小权值 初始 $f[1<<(i-1)][i]=val[i]$ ,$val[i]$ 表示点 $i$ 的权值 那么从小到大枚举状态 $o$ 对于
阅读全文
摘要:传送门 考虑先随便找一个点作为根,然后再慢慢移动根,这样一步步走到最优的点 设 $sum[x]$ 表示节点 $x$ 的子树的军队数,$len(x,y)$ 表示 $x,y$ 之间边的长度 那么对于根节点 $x$ 的一个儿子 $v$,考虑把儿子搞为根时,代价的改变量 $v$ 的子树内的军队消耗减少,共减
阅读全文
摘要:传送门 如果没有修改显然就直接点分治 有修改那就动态点分治 动态点分治就是在点分树上维护一些东西,查询时也在点分树上查 因为点分树深度是$log$的所以可以保证时间复杂度 此题我们需要在点分树上维护 $c$ 和 $f$ $f[x]$ 维护节点 $x$ 的子树中传给它父亲 $Fa$ 的所有路径长度 $
阅读全文
摘要:传送门 十分显然的点分治 枚举所有点作为两点的LCA 开一个桶$pd$判断之前子树内是否出现过此路程 对于每一个子树都把子树到根的所有路程dis都考虑匹配 如果 $pd[K-dis]=1$ 那么就说明存在匹配 然鹅题目还要求在合法匹配中选最少经过边数的匹配 那么再开一个数组 $dd$ ,$dd[i]
阅读全文
摘要:传送门 点分治入门题 首先可以直接枚举所有两点的lca强行dp 设 $f [ x ] [ 0/1/2 ]$ 表示节点 $x$ 在模3意义下,$x$ 的子树所有节点到 $x$ 的距离为 $0/1/2$ 时的方案数 初始 $f [ x ] [ 0 ] =1$ (本身到自己有一种方案) 转移就枚举所有儿子
阅读全文

浙公网安备 33010602011771号