树形dp
swqeaaa
有问题可以吻我
展开
-
HDU 4123 Bob’s Race 树dp RMQ 尺取
题意: 每个点有编号, 点组成一棵树, 每个点求出树上的最远距离, 给出若干次询问, 问一个连续编号的区间, 满足最大值和最小值的差距<Q时, 区间的最大长度是多少.思路: 树dp 与HDU 2196 Computer 相同的方法求出每个点的最长距离, 然后就与树无关了. 对于每一次询问, 尺取+RMQ得到满足条件的最长距离.代码:#include <iostream&g...原创 2019-07-13 22:30:59 · 119 阅读 · 0 评论 -
HDU 2196 Computer 树dp 每个点树上最远距离
题意: 一些电脑连成一棵树, 问这个树上每个节点的最远距离是多少.思路:从根dfs到叶子, 开数组维护每个点到自己子树的叶子的最远和次远距离, 对于这两个距离还要记录是从哪个儿子节点来的.再做一遍dfs, 每个节点用它父亲的最远/次远距离+到自己的距离更新自己的最远/次远距离(前提用来更新的父亲距离不是自己提供的).代码:#include<bits/stdc++.h&g...原创 2019-07-13 21:53:01 · 233 阅读 · 0 评论 -
POJ 2342 Anniversary party 入门树dp
类似: POJ 1463 Strategic game题意: 给出一颗树, 每个节点有价值, 现从中取出若干个点, 但是相邻的点不能都取, 求最大的总价值.思路:树dp①dp[0][x]代表x这个点不取时, 以x为根节点的子树能获得的总价值.②dp[1][x]代表x这个点取时, 以x为根节点的子树能获得的总价值.①: 此时, x的儿子节点可以取, 也可以不取(当然是选择大的...原创 2019-07-10 22:02:15 · 80 阅读 · 0 评论 -
POJ 2342 Anniversary party 入门树dp
题意: 除了一个人之外, 每个人都有价值, 每个人都有直接上级, 现在要开一个party, 取了一个人就不能取他的直接上级, 问最多能取到多少价值.思路:直接树dp. 之前写的代码是记搜, 我发现可以先拓扑排序再dp...记搜:#include<iostream>#include<cmath>#include<cstdio>usin...原创 2018-08-02 09:40:17 · 199 阅读 · 0 评论 -
POJ 1463 入门树dp Strategic game
题意: 给出一棵树, 现在要在一些点上放守卫, 每个守卫可以守护这个点上的边, 问最少放多少个守卫能守护所有的点.思路:18年写的记搜:#include<cstdio>#include<cstring>#include<iostream>using namespace std;int n;int father[1505];int dp...原创 2018-08-02 09:40:28 · 215 阅读 · 0 评论 -
POJ 2378 Tree Cutting 入门树形dp dfs?
题意: 给出一棵树, 现在去掉一个点, 问剩下的分离的每个连通块的大小是不是小于总大小的一半, 把这样的节点输出.思路:人家说是树dp, 但感觉是dfs啊...Orz#include<cstdio>#include<cstring>#include<iostream>#include<vector>#include<alg...原创 2018-08-02 09:40:34 · 139 阅读 · 0 评论 -
CF 1084 D The Fair Nut and Strings 树形dp
给出一棵无根的树, 每个节点上有价值, 边上有花费, 每到一个点能得到这个点的价值, 每到一条边会减掉这个边的价值, 只有当前拿到的价值>花费才能走这条边, 在随意选择起点和终点的情况下, 问最多能得到多少价值.思路: 这个题与那个Computer的树形dp很像, 无非是多了几个限定条件, 点有了价值, 边有了花费, 还是求最大价值.Ⅰ首先将这个无根树固定一个根, 每个点就有了固定的...原创 2019-07-23 10:16:24 · 188 阅读 · 0 评论