码迷,mamicode.com
首页 >  
搜索关键字:消耗战    ( 75个结果
BZOJ2286: [Sdoi2011]消耗战
题解:又是一个大坑。。。算法一:很明显,最小割。预计得分20分。算法二:每次做一遍树DP,预计得分40分。算法三:虚树+单调栈。算法三是为了优化算法二而出现的,因为关键点很少,而我们每次都要dfs整棵树过于浪费。而我们只把关键点和它们的lca拎出来。使得每个点要不是关键点,要不是lca用来汇总答案。...
分类:其他好文   时间:2015-01-17 23:25:42    阅读次数:343
【BZOJ2286】【SDOI2011】消耗战 LCA单调性(构建虚树)+树形DP
题解: 首先我们考虑每次都做一遍树形DP(树形DP自己脑补去,随便乱搞就过了)。 显然这是TLE无疑的。 所以可以利用LCA单调性构建虚树。 思想: 我们发现每次树形DP有很多点用不到,但是却需要被扫过,让他们见鬼去吧! 实现: 我们只对每次扫的图插入本次询问需要的节点,以及它们的LCA。 这样询问了m个点,虚树就至多只需要2m个点(so quick)。 而插入顺...
分类:其他好文   时间:2015-01-09 17:30:49    阅读次数:165
BZOJ 2286 SDOI 2011 消耗战 LCA单调性
题目大意:给出一棵有根树,n组询问,每一组询问给出树上的一些关键点,问割掉一些边使得根与这些点不联通的最小花费是多少。总询问的点不超过O(n)。 思路:基础思路是每一次询问做一次O(n)的DP,这本来已经够快了,但是有很多询问,这样做就n^2了。注意到所有询问的点加起来不超过O(n),也就是说每次询问的点可能很少。那么我们为何要将所有点扫一次?只需要将询问的点重新建树,然后跑树形DP,这...
分类:其他好文   时间:2015-01-08 09:40:04    阅读次数:480
BZOJ 3611 HEOI2014 大工程 倍增LCA+单调栈+树形DP
题目大意:给定一棵树,m次询问,每次给出k个关键点,询问这k个点之间的两两距离和、最小距离和最大距离 n 处理方法同2286 消耗战 地址见 http://blog.csdn.net/popoqqq/article/details/42493725 这个题的DP有些麻烦 因此我把要处理的节点单独拎出来做的DP 具体状态和转移见代码 #include #includ...
分类:其他好文   时间:2015-01-07 18:50:04    阅读次数:204
BZOJ 2286 SDOI2011 消耗战 倍增LCA+单调栈
题目大意:给定一棵树,边上有边权,m次询问,每次选定一些关键点,求将1号节点与所有关键点都切断所需的最小花销 关键点的总数 首先我们考虑暴力想法 令f[x]表示切断以x为根的子树中所有关键点的最小花销 g[x]表示x是不是关键点 那么对于x的每个子节点y有f[x]=Σmin(g[y]?INF:f[y],Distance(x,y) ) 这样每次暴力做一遍树形DP,时间复杂度是O(n*...
分类:其他好文   时间:2015-01-07 16:57:32    阅读次数:180
75条   上一页 1 ... 6 7 8
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!