首页 > TAG信息列表 > dispatching
BZOJ-2809-dispatching(枚举+dfs序建主席树)
题目 题意:已知条件:人数,上线薪水m,每一个人都有一个上级,薪水,领导能力。 找出一个人,从他所掌管的所有员工里随意选出几个员工,但这些员工的总薪水要<=m,求这个人的领导能力*员工个数的最大值。 思路:枚举+dfs序建主席树 #include<cstdio> #include<cstring> #include<algorithm>[2018.12.6]BZOJ2809 [Apio2012]dispatching
考虑维护每一个点以及它的子树中被派遣的忍者。 对于一个点,我们用类似树形DP的方式自底向上进行,先把它的所有孩子中被派遣的忍者放到一起,如果他们的薪水总和超过\(m\),就不停地将其中薪水最大的忍者删除,直到薪水总和小于等于\(m\)。 找到所有点中领导能力和被派遣忍者数量乘积「BZOJ 2809」「APIO 2012」Dispatching「启发式合并」
题意 给定一个\(1\)为根的树,每个点有\(c,w\)两个属性,你需要从某个点\(u\)子树里选择\(k\)个点,满足选出来的点\(\sum_{i=1}^k w(i)\leq m\),最大化\(k\times c(u)\) 题解 可以启发式合并\(splay\)来做,\(\text{dfs}\)每个点,每次和儿子的\(splay\)合并,就得到了一个维护这个点子树的平衡