E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
DP-树型dp
树型dp
poj3071 Football
因为是二叉结构,,所以会比较容易想到树型的结构,所以自然想到
树型dp
然而怎么设dp呢,,我是这样的dp[MX #include #include #include #include #include #
qwb492859377
·
2015-07-27 09:00
POJ 1463 Strategic game(树形
DP-
树上的点集覆盖模型)
题意:一城堡的所有的道路形成一个n个节点的树,如果在一个节点上放上一个士兵,那么和这个节点相连的边就会被看守住,问把所有边看守住最少需要放多少士兵。思路:和最大独立集的思路差不多,转移方程差不多,用0,1表示子树的根放不放士兵 dp[root][0]+=dp[son][1]; dp[root][1]+=min(dp[son][1],dp[son][0]); #include #include
kalilili
·
2015-03-29 09:00
HDU 1520 Anniversary party(树形
DP-
最大独立集)
大意:很多领导,能形成一个树形关系网,这些领导参加一个party,每个人都有一个能使party活跃的值,但是每个人又不喜欢跟自己的直接领导同时参加party。为使party气氛最好,求最好气氛值。思路:法一:对子树的根按两种决策找到状态方程,然后用刷表法法二:细化状态,dp[i][0],dp[i][1]分别表示不选i时的最大集和选了i时的最大集法二的方法更实用,状态细化后更便于找状态方程法二代码:
kalilili
·
2015-03-29 09:00
POJ3342 Party at Hali-Bula(树的最大独立集-树形
DP-
刷表法)
题意:给定一个树,选择若干点,使得选择的结点中任一结点不会和它的子结点同时选择,求能选结点最大数量。同时判断方案数是否为一。思路:树的最大独立集,用树形dp,dfs一遍找每个结点的父亲,是为了从下向上刷每个结点儿子的最大独立集和and每个结点孙子的最大独立集和的表判断方案数是否唯一同样在树形dp的同时递推判断即可算法复杂度可以是线性//248K0MSC++ #include #include #i
kalilili
·
2015-03-14 11:00
poj3140--Contestants Division(树形
dp-
水题)
ContestantsDivisionTimeLimit: 2000MS MemoryLimit: 65536KTotalSubmissions: 8469 Accepted: 2420DescriptionInthenewACM-ICPCRegionalContest,aspecialmonitoringandsubmittingsystemwillbesetup,andstudentswill
u013015642
·
2015-03-13 19:00
UVA 10453 Make Palindrome(区间
dp-
补全回文串+打印结果)
题目大意:给一个字符串,要求添加最少个字符,把它变成回文串,并输出。思路:区间dp,dp[i][j]表示区间(i,j)内的字符串添加的最少个数,变成回文串那么,如果str[i]==str[j],dp[i][j]=dp[i+1][j-1]+1否则dp[i][j]=min{dp[i+1][j],dp[i][j-1]}+1;题目要输出方案,那么只要再开一个数组,根据状态转移递归输出即可#include
HelloWorld10086
·
2015-02-04 10:00
uva
10453
Birthday 【
树型DP
+离线tarjan求LCA】
传送门:【codeforces】494D.Birthday题目分析:首先明确一点,平方和是可以递推的!1.我们第一次dfs,求出从一个点到其子树的所有点的距离的平方和。大体是保存三个变量来递推,设u的子树上点的个数cnt,到子树上点的距离和sum,到子树上点的距离平方和sqr,每次dfs完一个儿子v以后:dp[u].cnt+=dp[v].cntdp[u].sum+=dp[v].sum+dp[v].
u013368721
·
2014-12-14 14:00
codeforces
【HDU】4616 Game
树型DP
传送门:【HDU】4616Game题目分析:首先,看到这道题,比较容易想到这需要树上的算法,再看看c的范围那么小,那么我们的思路便可以往
树型DP
上靠拢。
u013368721
·
2014-11-21 16:00
HDU
【HDU】4916 Count on the path
树型DP
传送门:【HDU】4916Countonthepath题目分析:首先我们将树转化成以1为根,这样对于每一个查询,如果该查询的路径不经过根(1),则答案就是1,否则我们再做讨论。下面我们重点分析如何求解当查询的路径经过根(1)时。首先我们先做一次dfs,求出以u为根的子树内的最小节点,用tree[u]表示。同时求出u的所有子树中最小和次小的tree[v],v是u的子节点,最小用sub_tree[u]
u013368721
·
2014-11-13 12:00
HDU
dp-
整数划分问题(理论分析)
原文地址:http://www.cnblogs.com/wanghetao/archive/2013/11/25/3442192.html描述整数划分是一个经典的问题。请写一个程序,完成以下要求。 输入每组输入是两个整数n和k。(1j时,可以根据划分中是否含有j分为两种情况。若划分中含有j,划分方案数为dp[i-j][j];若划分数中不含j,相当于将i划分为不大于j-1的划分数,为dp[i][j
u012349696
·
2014-09-24 20:00
dp
动态规划
Codeforces Round #263 (Div. 2) D
思路:
树型dp
,0是天然的根。。状态转移方程略神奇,是:dp[u][1]=(dp[u][1]*dp[v][1]+dp[u][1]*dp[v][0]+dp[u][0]*dp[v][1]); dp[u
squee_spoon
·
2014-08-27 20:00
codeforces
poj 1192 求树的最大权子树(树形dp)
思路:
树型dp
。dp[i]表示以i为根的子树具有的最大权值。dp的思路犹如一维最大子区间,即对于根节点i的所有子树j,如果j中节点的最大权大于0,则加入,否则舍弃。
dumeichen
·
2014-08-25 16:00
UVa12093 Protecting Zonk
思路:
树型dp
。随便拿一个点当作树根,dp(i,j,k),i代表节点号,j代表选择装置的类型,k代表覆盖状态,数组存该状态
squee_spoon
·
2014-08-12 21:00
dp
uva
UVa1218 Perfect Service
稍复杂的
树型dp
。。状态的类型不仅跟当前节点有关,还与当前节点的父节点有关。一共有三种状态,当前节点是服务器,当前节点不是且父节点是,当前节点不是且父节点不是。
squee_spoon
·
2014-08-12 13:00
dp
uva
UVa12186 Another Crisis
也是一道紫书上所说的
树型DP
。但是我觉得这题没有发挥dp存储中间结果的优势,每个子问题其实只需要计算一次,可以算是一个树的深度优先遍历,然后贪心作出选择。
squee_spoon
·
2014-08-09 21:00
dp
uva
Monkey and Banana(HDU 1069)解题报告(DP - 滚动数组)
MonkeyandBanana(HDU1069)解题报告(
DP-
滚动数组)一、原题MonkeyandBananaTimeLimit:1000MSMemoryLimit:32768KB64bitIOFormat
dancinglikelink
·
2014-08-08 14:38
暑假训练2-DP专题
动态规划基本概念-> 动态规划 总结-> 动态规划总结byAmberACM中常见DP分类1.背包 -> 背包九讲2.数位
DP-
> 数位DP2.线型
DP-
> 线型动态规划3.区间
DP-
> 区间型动态规划
Yunyouxi
·
2014-07-31 16:00
动态规划
【HDU】2242 考研路茫茫——空调教室 双连通分量+
树型DP
考研路茫茫——空调教室TimeLimit:4000/2000MS(Java/Others) MemoryLimit:32768/32768K(Java/Others)TotalSubmission(s):1978 AcceptedSubmission(s):576ProblemDescription众所周知,HDU的考研教室是没有空调的,于是就苦了不少不去图书馆的考研仔们。Lele也是
u013368721
·
2014-07-14 18:00
HDU
【POJ】3659 Cell Phone Network 树上的极小支配集——
树型DP
CellPhoneNetworkTimeLimit:1000MSMemoryLimit:65536KTotalSubmissions:5524Accepted:1984DescriptionFarmerJohnhasdecidedtogiveeachofhiscowsacellphoneinhopestoencouragetheirsocialinteraction.This,however,re
u013368721
·
2014-07-13 20:00
dp
poj
图论
经典
Dp-
单调递增最长子序列(经典dp)
单调递增最长子序列时间限制:3000 ms | 内存限制:65535 KB难度:4描述求一个字符串的最长递增子序列的长度如:dabdbf最长递增子序列就是abdf,长度为4输入第一行一个整数0 #include #include #include #include #include #include #include #include #defineINF99999; using
u013480370
·
2014-07-05 11:00
HDU 1054 Strategic Game 二分匹配 |
树型DP
| 贪心
StrategicGameTimeLimit:20000/10000MS(Java/Others) MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):4717 AcceptedSubmission(s):2133ProblemDescriptionBobenjoysplayingcomputergames,especiall
u013368721
·
2014-06-08 12:00
HDU
区间
dp-
添加最少字符成为回文串
水题吧,记忆化搜索即可回文字符串时间限制:3000 ms | 内存限制:65535 KB难度:4描述所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如"aba"。当然,我们给你的问题不会再简单到判断一个字符串是不是回文字符串。现在要求你,给你一个字符串,可在任意位置添加字符,最少再添加几个字符,可以使这个字符串成为回文字符串。输入第一行给出整数N(0
u012350533
·
2014-04-17 00:00
【
树型dp
】ural 1018
BinaryAppleTreeLet'simaginehowappletreelooksinbinarycomputerworld.You'reright,itlooksjustlikeabinarytree,i.e.anybiparousbranchsplitsuptoexactlytwonewbranches.Wewillenumeratebyintegerstherootofbinaryap
hetangl2
·
2014-02-23 14:00
算法
dp
nyist 737 区间
DP-
石子合并 dfs
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=737看了题解才有思路:http://blog.csdn.net/u012350533/article/details/17054711点个赞~#include #include #include #include #include usingnamespacestd; #defineinf
qq574857122
·
2013-12-02 16:00
区间
DP-
石子合并(线性)
石子合并(一)时间限制:1000 ms | 内存限制:65535 KB难度:3描述 有N堆石子排成一排,每堆石子有一定的数量。现要将N堆石子并成为一堆。合并的过程只能每次将相邻的两堆石子堆成一堆,每次合并花费的代价为这两堆石子的和,经过N-1次合并后成为一堆。求出总的代价最小值。输入有多组测试数据,输入到文件结束。每组测试数据第一行有一个整数n,表示有n堆石子。接下来的一行有n(0 #inc
u012350533
·
2013-12-01 12:00
HDU 4118
树型dp
求树中每个点移位所需总 最小路径和
题意:T个测试案例n个点下面为一棵带权树问:1、每个点上站一个人,每个人都走到另一个点上。(一个点上不会有2个人)2、每个人都想使自己走的很远3、我们显然可以得到一个解,使得每个人对应一个最终的终点,他们从自己所在点到终点不会绕路走。 输出这样的路径和。思路:对于每条边,因为大家都想走的最远,那么相当于让边两端的人交换,花费就是边长*经过边的人数ans=Σ(每条路长l)*(经过这条路的最大次数f)
qq574857122
·
2013-11-21 20:00
POJ 3417 删边求不连通方法 LCA转RMQ+
树型dp
题意:n个点m条无向边下面n-1行给定原树m行给定新边 问删一条老边和新边使得图不连通的方法 首先,对于一条新边(u,v),加入后成环u,v,LCA(u,v)所以删除新边(a,b)以及这个环上的没有被其他环覆盖的边 即可分成两部分。所以问题转化为求每条边被环覆盖的次数 设dp[x]表示x所在的父边被新边覆盖的次数 引进一条新边(a,b)后,dp[a]++,dp[b]++ 而
qq574857122
·
2013-11-12 22:00
概率
dp-
九度-1546-迷宫问题
题目链接:http://ac.jobdu.com/problem.php?pid=1546题目意思:有一个起点S,多个出口E,#代表不能走,每次等概率的随机选择下一个可以行走的位置,求从S到出口的期望。解题思路:高斯消元求解期望。先BFS预处理能够到达的出口的位置,然后如果从起点不能到达终点,直接输出-1.然后对于无效的点,置该未知数的解为-1,否则依据dp[i][j]=1+dp[i-1][j]*
cc_again
·
2013-10-08 00:00
动态规划
dp-
史上最戳最长最臭代码-hdu-4733-G(x)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4733题目大意:定义G(x)=x⊕(x>>1).给两个由0、1、?组成的长度相同的字符串S1,S2.其中?表示0、1状态不确定,求有多少种p,使得G(p)=S1,G(p+1)=S2如果p唯一,则输出G(p)和G(p+1)(注意这中间不能有问号)。解题思路:这是我写的史上最臭最长最戳的代码,大神请跳过。
cc_again
·
2013-09-17 15:00
动态规划
poj 1631 Bridging signals (LIS 最长递增子序列
DP-
二分)
题目:http://poj.org/problem?id=1631思路:LIS最长递增子序列,如果用一般的动态规划算法,复杂度是O(n^2),题目的数据规模下会超时,采用二分的思想:复杂度是O(nlogn)代码:首先是一般的DP: #include #include #include usingnamespacestd; constintMAX=40001; intdp[MAX],num[MAX]
xiaozhuaixifu
·
2013-09-06 13:00
动态规划
8#15 - 多校8
03-Mine(博弈-可以转化为取石子的博弈)04-Terrorist'sdestroy(
DP-
树的直径,先用DP求直径的方法求出需要的几个参数,然后枚举要删除的边,再根据参数计算出两棵树的直径,更新答案
XDU_Truth
·
2013-08-18 09:00
基类指针转换为子类指针,子类指针转换为基类指针
public: virtualvoidvirtual_fun() {coutvirtual_fun(); cp->normal_fun(); derived*dp=(derived*)newbase;
dp
j123kaishichufa
·
2013-08-08 20:00
树型dp
poj1192
简单
树型dp
。题目好罗嗦。。一棵树找最大权值和子树可以是中间子树。算出最大权值dfs一下搞掂!!
pucca6
·
2013-08-05 16:00
树型dp
树型dp
Zoj3201 tree of tree
^_^o(∩∩)o...我去刚要打个哈哈出现这么多颜文字还那么丑这题算是
树型dp
经典的小变种了吧。。
pucca6
·
2013-08-04 12:00
树型dp
BZOJ 2067([Poi2004]SZN-树形
DP-
树链最小覆盖及其最长线最小解)
2067:[Poi2004]SZNTimeLimit: 10Sec MemoryLimit: 64MBSubmit: 48 Solved: 24[Submit][Status]DescriptionString-Toysjoint-stock公司需要你帮他们解决一个问题.他们想制造一个没有环的连通图模型.每个图都是由一些顶点和特定数量的边构成.每个顶点都可以连向许多的其他顶点.一个图是连通且无
nike0good
·
2013-07-24 21:00
POJ 3342 - Party at Hali-Bula
树型DP
+最优解唯一性判断
好久没写
树型dp
了...以前都是先找到叶子节点.用队列维护来做的...这次学着vector动态数组+DFS回朔的方法..感觉思路更加的清晰...
·
2013-07-20 18:00
part
POJ 1947 - Rebuilding Roads
树型DP
(泛化背包转移)..
dp[x][y]表示以x为根的子树要变成有y个点..最少需要减去的边树...最终ans=max(dp[i][P]+t) 更新的时候分为两种情况..一种是要从其这个孩子转移过来...枚举做01背包..更新出每个状态的最小值..或者说直接砍掉这个孩子..那么只需将所有的状态多加个砍边... 这里的枚举做01背包..意思是由于叶子节点要放多少进去不确定..叶子节点要放的大小以及本节
kk303
·
2013-07-20 11:00
POJ 3342 - Party at Hali-Bula 树形DP+最优解唯一性判断
好久没写
树型dp
了...以前都是先找到叶子节点.用队列维护来做的...这次学着vector动态数组+DFS回朔的方法..感觉思路更加的清晰...
kk303
·
2013-07-19 19:00
poj 2378
树型dp
和poj1655那道求树的重心基本上一样的,代码也没多大改动。详情请见 #include #include #include #include usingnamespacestd; #defineMAXN100000 intN; vectornode[20005]; intnum[MAXN];//num[i]为以i结点为根的树的所有结点数。 intdp[MAXN]; boolv
·
2013-07-15 21:00
poj
poj 2378
树型dp
和poj1655那道求树的重心基本上一样的,代码也没多大改动。详情请见#include #include #include #include usingnamespacestd; #defineMAXN100000 intN; vectornode[20005]; intnum[MAXN];//num[i]为以i结点为根的树的所有结点数。 intdp[MAXN]; boolvis[MAXN];//
t1019256391
·
2013-07-15 08:00
作业(
Dp-
贪心)
作业(homework)题目背景:众所周知,白神是具有神奇的能力的。比如说,他对数学作业说一声“数”,数学作业就会出于畏惧而自己完成;对语文作业说一声“语”,语文作业就会出于畏惧而自己完成。今天,语文老师和数学老师布置了许多作业,同学们纷纷寻找白神寻求帮助。白神作为一个助人为乐的人,便答应下来。回到家,白神将这N份作业按顺序摊开,发现语文作业数学作业混在一起,这就让白神苦恼起来,他如果对连续一段作
nike0good
·
2013-06-04 17:00
hdu 4303 Hourai Jeweled(
树型DP
+统计答案)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4303题意:给你一颗树,每个节点有权值,每条边有颜色,问所有满足相邻边颜色不同的路径的权值之和分析:一开始看成求权值最大的路径,所以就是水题了,不过加个统计就得略想一下子,f[i]表示i的所有子节点的连到i路径和,这里有个限制就是i到子节点的颜色与i到父节点的颜色不同,g[i]记录相应的边的数量,于是有f[
fp_hzq
·
2013-05-31 09:00
NYOJ 61 传纸条 && NYOJ 712 探寻宝藏 -- 双线dp
pid=712探寻宝藏 题意:给一个矩阵,求两条不相交的线从左上角到右下角经过的元素的最大和 双线
dp-
即同时考虑两条不相交的线,使其线上的和最大 显然我们需要记录每一步时两个线同时往前走的位
x314542916
·
2013-05-15 21:00
路径空间HDOJ 4514 - 湫湫系列故事——设计风景线 并查集+
树型DP
最近研究路径空间,稍微总结一下,以后继续补充: 题意有没说楚清的...两点间最多一条路径.... 先用并查集检查无向图否是有环... 若干个无环的无向图就是一丛林了... 那么目题转化为在一棵树上找最长的路径....绝大部分都是叶子到叶子的离距(除非根节点只有一个孩子..那么最长的多是根到某个叶子结点) 在丛林的每课树上做DP..序顺从叶子到根.. dp[i]..代表i点为
·
2013-05-04 20:00
并查集
HDOJ 4514 - 湫湫系列故事——设计风景线 并查集+
树型DP
题意有没说清楚的...两点间最多一条路径.... 先用并查集检查无向图是否有环... 若干个无环的无向图就是一森林了... 那么题目转化为在一棵树上找最长的路径....绝大部分都是叶子到叶子的距离(除非根节点只有一个孩子..那么最长的可能是根到某个叶子结点) 在森林的每课树上做DP..顺序从叶子到根.. dp[i]..代表i点为根的子树到叶子的最长路径长度.... 这
kk303
·
2013-05-03 21:00
BZOJ 1076([SCOI2008]奖励关-期望
dp-
从后向前)
1076:[SCOI2008]奖励关TimeLimit: 10Sec MemoryLimit: 162MBSubmit: 328 Solved: 199[Submit][Status][Discuss]Description你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关。在这个奖励关里,系统将依次随机抛出k次宝物,每次你都可以选择吃或者不吃(必须在抛出下一个宝物之前做出选择,且现在决定不吃
nike0good
·
2013-02-26 16:00
Tree poj 1848
比较经典的
树型DP
,状态不好想,条件给的不明确,题目其实要求必须是简单图才可以,不能有重边,所以俩个点和一个点的环都不合法转个比较经典的题解首先明确一点,题中的环至少需要3个顶点。
gyarenas
·
2013-01-21 16:00
hdu 2242 考研路茫茫――空调教室(Tarjan+
树型DP
)
跑一次Tarjan转化成一棵树,然后跑一次
树型DP
(特别注意重边的处理)。
shiqi_614
·
2012-10-24 20:00
POJ 3162 Walking Race(单调队列或线段树加
树型DP
)
题意:给你一棵有n个节点的树,树边为权值,要你求出树上每个点到其他点的距离中最大的那个值。对求出的从节点1到节点n最大值,找出最长的一段使得这一段中最大值减最小值的结点小于等于m。对于第一个问题,有两种方法可以解决。第一种比较简单的方法是,每个点到其他点的距离中最大的那个值,一定是到树的直径的两个端点的距离之一(反证法易得)。那么我们找出树的直径的同时,处理出各个节点到树直径两个端点的距离就可以了
shiqi_614
·
2012-10-24 01:00
POJ 1155 TELE(
树型DP
)
题意:有一个电视台广播节目,广播的网络用一棵树表示,节点1表示电台,叶子结点表示用户,用户愿意付一定的钱去收看这个节目,从非叶子结点到其他结点需要一定的费用(即从中继点到另一个中继点需要一些钱),问最后在不亏本的情况下,最多能使多少人收看到节目。定义dp[i][j]表示在节点i为根节点的子树下,有j个人收看节点的最大利润。状态转移方程是:dp[i][j]=max(dp[i][j],dp[i][j-
shiqi_614
·
2012-10-24 00:00
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他