码迷,mamicode.com
首页 >  
搜索关键字:树形dp    ( 1929个结果
蓝桥杯 算法拔高 金属采集 [ 树形dp 经典 ]
传送门算法提高 金属采集 时间限制:1.0s 内存限制:256.0MB 锦囊1锦囊2锦囊3问题描述人类在火星上发现了一种新的金属!这些金属分布在一些奇怪的地方,不妨叫它节点好了。一些节点之间有道路相连,所有的节点和道路形成了一棵树。一共有 n 个节点,这些节点被编号为 1~n 。人类将 k...
分类:编程语言   时间:2015-04-08 21:16:21    阅读次数:385
BZOJ 3522 POI 2014 Hotel 树形DP
题目大意给出一棵树,问选择三个点,使得这三个点相互的距离相等的方案有多少种。思路这三个点肯定不能再一条链上, 那么就肯定能够确定一个中心点,使得三个点到这个中心点的距离都相等。 之后我们就可以枚举这个中心点,对于每个深度统计一下就可以了。虽然看起来像是O(n3)O(n^3)的,但是跑的飞起啊。CODE#define _CRT_SECURE_NO_WARNINGS#include ...
分类:其他好文   时间:2015-04-08 10:56:19    阅读次数:161
【BZOJ】【3522】【POI2014】Hotel
暴力/树形DP 要求在树上找出等距三点,求方案数,那么用类似Free Tour2那样的合并方法,可以写出: f[i][j]表示以 i 为根的子树中,距离 i 为 j 的点有多少个; g[i][j]表示以 i 为根的子树中,选出两点,剩下那点距离 i 为 j 的方案数; 那么就可以在搜...
分类:其他好文   时间:2015-04-06 11:24:05    阅读次数:135
poj 1155 TELE(树形泛化背包dp)
/*     这道题还不错,自己想出了思路过得也比较快,也得出了一个小经验,以后写这种题先把关键部分伪代码写出来这样会快很多而且     不那么容易出错,省去很多的调试时间     这道题就是转化为一道树形背包问题。首先把需要付的钱转为负数,对每个叶子结点增加一个子节点表示赚的钱,为正数.     然后记录下当前结点的所有可能的用户数目所花费的钱.所以问题就转化为一道简单的树形dp问题。最...
分类:其他好文   时间:2015-04-06 08:50:07    阅读次数:164
Codeforces 526B Om Nom and Dark Park 树形dp
题意:给你一颗完全二叉树,每条边有一个值,可以对这个值进行加操作,让你满足根节点到所有叶子节点路径值相同 ,问你最少要加多少值。解题思路:从上往下树形DP,位运算会比较方便。解题代码: 1 // File Name: b.cpp 2 // Author: darkdream 3 // Created...
分类:其他好文   时间:2015-04-05 21:54:18    阅读次数:175
poj1155
题意:给定一个树形图,节点数量3000。叶子节点是用户,每个用户如果能看上电视会交一定的电视费。看上电视的条件是从根到该用户的路径全部被修好,修每条边有一个费用。在不亏损(用户交钱总额>=修路总费用)的前提下,最多有多少人能看上电视。分析:树形dp。dp[u][i][j]表示对于u节点,只看其前i个...
分类:其他好文   时间:2015-04-05 21:36:57    阅读次数:156
bzoj 3611
和BZOJ消耗站一样,先将那个询问的简图构建出来,然后就是简单的树形DP。(倍增数组开小了,然后就狂WA,自己生成的极限数据深度又没有那么高,链又奇迹般正确) 1 #include 2 #include 3 #include 4 #include 5 #define min(a,b...
分类:其他好文   时间:2015-04-05 20:12:30    阅读次数:197
bzoj 2286
第一道"虚树"题目(好吧,我也不知道这是不是虚树,但和虚树的思想肯定是一样的,都是简化树结构)这一类算法核心思想都是简化树结构,只取我们必须的节点和一些信息,然后在简化后的树结构上工作。首先,如果这道题只有一次询问,那么很容易想到树形DP的解法,但这道题又多组询问,并且限制了所有询问的关键点个数,这...
分类:其他好文   时间:2015-04-05 13:18:11    阅读次数:118
cf219d
树形dp#include #include using namespace std;#define D(x) const int INF = 0x3f3f3f3f;const int MAX_N = (int)(2e5) + 10;int n;vector > edge[MAX_N];int re_...
分类:其他好文   时间:2015-04-04 21:01:44    阅读次数:135
【HDU】1520-Anniversary party(初级树形DP)
不是什么难题,但也算自己写的第一个树形DP,留个纪念吧= = 状态方程(dp[0][i]代表不选i人参加聚会时候的最大值,dp[1][i]代表选) dp[0][pos] = max(dp[0][pos],max(dp[0][e] + dp[0][pos],dp[1][e] + dp[0][pos])); dp[1][pos] = max(dp[1][pos],dp[1][pos] + dp[0...
分类:其他好文   时间:2015-04-02 20:54:46    阅读次数:132
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!