2018.09.01 独立集(树形dp)】的更多相关文章

描述 给定一颗树(边权为1),选取一个节点子集,使得该集合中任意两个节点之间的距离都大于K.求这个集合节点最多是多少 输入 第一行是两个整数N,K 接下来是N-1行,每行2个整数x,y,表示x与y有一条边 输出 1个整数表示最多的节点数 样例输入 3 1 1 2 1 3 样例输出 2 提示 测试点 N的上限 K 特征 1 15 1 2 1000 1 链 3 1000 1 4 100000 1 链 5 100000 1 6 15 2 7 1000 2 链 8 1000 2 9 100000 2 链…
传送门 树形dp好题啊. 我们用w[i]" role="presentation" style="position: relative;">w[i]w[i]表示以i为根的子树最少可以把在子树外的榕树之心向子树里拉多少距离. 我们令i最大的子树的根为ms" role="presentation" style="position: relative;">msms. 那么有几种情况: 1. size[…
LINK:林克卡特树 作为树形dp 这道题已经属于不容易的级别了. 套上了Wqs二分 (反而更简单了 大雾 容易想到还是对树进行联通情况的dp 然后最后结果总和为各个联通块内的直径. \(f_{i,j}\)表示以i为根的子树内有j条边被删掉 可以发现这个状态难以转移. 需要换个状态 一个比较经典的做法是套用树的直径的那套来做 每个点向上传递单条链或者什么都不传来转移. 传递单条链可以在父亲的那个地方合成一条 然后钦定此条为以x为根的联通内的最大值 那么就可以从x所在父亲的那条边切断了. 或者 传…
传送门 概率dp简单题. 设f[i][j]表示前i轮j获胜的概率. 如果j,k能够刚好在第i轮相遇,找规律可以发现j,k满足: (j−1)>>(i−1)" role="presentation" style="position: relative;">(j−1)>>(i−1)(j−1)>>(i−1)^1==(k−1)>>(i−1)" role="presentation"…
传送门 期望dp简单题啊. 不过感觉题意不太对. 手过了一遍样例发现如果有捷径必须走. 这样的话就简单了啊. 设f[i]" role="presentation" style="position: relative;">f[i]f[i]表示从第i个格子出发到第n个格子的期望步数. 显然就可以从f[i+1]~f[i+6]转移过来了,注意如果f下标超过n期望步数都是0. 代码: #include<bits/stdc++.h> #define…
Be careful when writing in the blog garden. Sometimes you accidentally write something wrong, and you may be canceled. This is not a good thing. In fact, I don't want to water in the blog garden. I just want to share it if I have an idea. I think thi…
Nothing to think about, I don't know where to start, the mastery of learning is not an easy task, you need to take it slowly.…
传送门 一道挺有趣的. 第一眼以为每个数都用miller_rabin判一次,但感觉会被卡时间啊. 继续分析发现可以晒出sqrt(r)中的所有素数,然后用类似埃式筛法的方法晒出[l,r]" role="presentation" style="position: relative;">[l,r][l,r]之间的素数. 然后就没了. 代码: #include<iostream> #include<cstdio> #include&…
传送门 简单dp题. f[i]表示以i为根的子树被割掉的最小值. 那么有: f[i]=min(∑vf[v],dist(i,fa))" role="presentation" style="position: relative;">f[i]=min(∑vf[v],dist(i,fa))f[i]=min(∑vf[v],dist(i,fa)) 直接树形dp就行了. 代码: #include<bits/stdc++.h> #define N 10…
描述 太平王世子事件后,陆小凤成了皇上特聘的御前一品侍卫. 皇宫以午门为起点,直到后宫嫔妃们的寝宫,呈一棵树的形状:有边直接相连的宫殿可以互相望见.大内保卫森严,三步一岗,五步一哨,每个宫殿都要有人全天候看守,在不同的宫殿安排看守所需的费用不同. 可是陆小凤手上的经费不足,无论如何也没法在每个宫殿都安置留守侍卫. 编程任务:帮助陆小凤布置侍卫,在看守全部宫殿的前提下,使得花费的经费最少. 输入 输入文件中数据表示一棵树,描述如下: 第1行 n,表示树中结点的数目. 第2行至第n+1行,每行描述每…