[bzoj3872][Poi2014]Ant colony_树形dp】的更多相关文章

Ant colony bzoj-3872 Poi-2014 题目大意:说不明白.....题目链接 注释:略. 想法:两个思路都行. 反正我们就是要求出每个叶子节点到根节点的每个路径权值积. 可以将边做为代理根.或者将边断掉. 最后,附上丑陋的代码... ... #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; t…
[BZOJ3872][Poi2014]Ant colony Description 给定一棵有n个节点的树.在每个叶子节点,有g群蚂蚁要从外面进来,其中第i群有m[i]只蚂蚁.这些蚂蚁会相继进入树中,而且要保证每一时刻每个节点最多只有一群蚂蚁.这些蚂蚁会按以下方式前进: ·在即将离开某个度数为d+1的点时,该群蚂蚁有d个方向还没有走过,这群蚂蚁就会分裂成d群,每群数量都相等.如果d=0,那么蚂蚁会离开这棵树. ·如果蚂蚁不能等分,那么蚂蚁之间会互相吞噬,直到可以等分为止,即一群蚂蚁有m只,要分成…
3872: [Poi2014]Ant colony Time Limit: 30 Sec  Memory Limit: 128 MB Description   There is an entrance to the ant hill in every chamber with only one corridor leading into (or out of) it. At each entry, there are g groups of m1,m2,...,mg ants respecti…
正解:二分+$dp$ 解题报告: 传送门$QwQ$ 一年过去了依然没有头绪,,,$gql$的$NOIp$必将惨败了$kk$. 考虑倒推,因为知道知道除数和答案,所以可以推出被除数的范围,然后一路推到叶子节点就成$QwQ$ $over$ 嗷注意一个细节是有可能乘爆,所以每次和$m_max$取个$min$就成$QwQ$ #include<bits/stdc++.h> using namespace std; #define il inline #define gc getchar() #defin…
[BZOJ3872][Poi2014]Ant colony 试题描述 There is an entrance to the ant hill in every chamber with only one corridor leading into (or out of) it. At each entry, there are g groups of m1,m2,...,mg ants respectively. These groups will enter the ant hill one…
题目大意 ​ 给你一棵树,求有多少个组点满足\(x\neq y,x\neq z,y\neq z,dist_{x,y}=dist_{x,z}=dist_{y,z}\) ​ \(1\leq n\leq 100000\) 题解 ​ 问题转换为有多少个组点满足\(dist_{i,x}=dist_{i,y}=dist_{i,z}\) ​ 我们考虑树形DP ​ \(f_{i,j}=\)以\(i\)为根的子树中与\(i\)的距离为\(j\)的节点数 ​ \(g_{i,j}=\)以\(i\)为根的子树外选择一个…
题目链接 BZOJ3829 题解 设\(f[i]\)为从\(i\)父亲进入\(i\)之前开始计时,\(i\)的子树中最晚装好的时间 同时记\(siz[i]\)为节点\(i\)子树大小的两倍,即为从父亲进入并回到父亲的时间 那么有 \[f[i] = max\{C[i],f[to] + siz_{pre}\} + 1\] 我们只需给出一个合理的访问子树的顺序,以最小化\(f[i]\)的值 我们先考虑最后访问的一棵子树,记\(sum = \sum siz[to]\) 那么最后一棵子树的贡献 \[f[t…
题目链接 BZOJ3836 题解 显然这是个\(NP\)完全问题,此题的解决全仗任意两点间不存在节点数超过10的简单路径的性质 这意味着什么呢? \(dfs\)树深度不超过\(10\) \(10\)很小呐,可以状压了呢 我们发现一个点不但收祖先影响,而且受儿子影响,比较难处理 我们就先处理该点及其祖先,然后更新完儿子之后反过来用儿子更新根,就使得全局合法了 一个点显然有三种状态: 0.没被覆盖 1.被覆盖但是没有建站 2.建站 设\(f[d][s]\)表示节点\(u\)[深度为\(d\)],其祖…
题目链接 BZOJ3522 题解 就是询问每个点来自不同子树离它等距的三个点的个数 数据支持\(O(n^2)\),可以对每个距离分开做 设\(f[i][j]\)表示\(i\)的子树中到\(i\)距离为\(j\)的点的个数 利用换根法可得到每个点作为根时的值 然后随便容斥一下就是答案 #include<algorithm> #include<iostream> #include<cstring> #include<cstdio> #include<cma…
[BZOJ3522][Poi2014]Hotel Description 有一个树形结构的宾馆,n个房间,n-1条无向边,每条边的长度相同,任意两个房间可以相互到达.吉丽要给他的三个妹子各开(一个)房(间).三个妹子住的房间要互不相同(否则要打起来了),为了让吉丽满意,你需要让三个房间两两距离相同.有多少种方案能让吉丽满意? Input 第一行一个数n.接下来n-1行,每行两个数x,y,表示x和y之间有一条边相连. Output 让吉丽满意的方案数. Sample Input 7 1 2 5 7…