[NOIP模拟] 拆网线 树形DP
来源:互联网 发布:another mysql daemon 编辑:程序博客网 时间:2024/05/21 22:42
Description
给出一棵树,现去掉一些边,使树存在 K 个点,每点至少与其中一个点相连,求最小**边。
Input
t 组数据,n 个点的树,K,以及相连的边。
Output
答案。
Sample input
2
4 4
1 2 3
4 3
1 1 1
Sample output
2
2
Solution :
我们定
那么这棵树的最大独立边集就为
Code :
#include <cstdio>#include <cstdlib>#include <cstring>#include <string>#include <algorithm>#include <iostream>#include <cmath>#include <ctime>#include <map>#include <vector>using namespace std;inline int read() { int i = 0, f = 1; char ch = getchar(); while(!isdigit(ch)) { if(ch == '-') f = -1; ch = getchar(); } while(isdigit(ch)) { i = (i << 3) + (i << 1) + ch - '0'; ch = getchar(); } return i * f;}const int MAXN = 1e5 + 5;int dp[MAXN][2], first[MAXN], nxt[MAXN * 2], to[MAXN * 2], n, k, tot;inline void addedge(int x, int y) { nxt[++tot] = first[x]; first[x] = tot; to[tot] = y; nxt[++tot] = first[y]; first[y] = tot; to[tot] = x;}inline void dfs(int x, int fa) { dp[x][1] = 1; dp[x][0] = 0; int mx = 0; for(int i = first[x]; i; i = nxt[i]) { if(to[i] != fa) { dfs(to[i], x); dp[x][1] += dp[to[i]][0]; dp[x][0] += dp[to[i]][0]; mx = max(dp[to[i]][1] - dp[to[i]][0], mx); } } dp[x][0] += mx;}int main() { int t = read(); while(t--) { memset(first, 0, sizeof(first)); memset(nxt, 0, sizeof(nxt)); tot = 0; n = read(), k = read(); for(int i = 1; i <= n - 1; ++i) addedge(read(), i + 1); dfs(1, 1); int now = dp[1][0]; if(now * 2 >= k) printf("%d\n", k / 2 + (k & 1)); else printf("%d\n", now + k - now * 2); }}
阅读全文
0 0
- [NOIP模拟] 拆网线 树形DP
- NOIP模拟 探险 【树形dp】
- (noip 模拟 染色)<树形DP>
- [NOIP模拟][拓扑排序][贪心]拆网线
- NOIP模拟(20171023)T3 拆网线
- NOIP模拟(10.23)T3 拆网线
- NOIP模拟 10.17 单调队列 + 树形Dp + 区间Dp
- 【NOIP 模拟题】[T2]拯救紫萱学姐(kmp+树形dp)
- 【NOIP 模拟题】[T2]宝藏(树形dp)
- #NOIP模拟赛#相似字符串(树形DP + 状压)
- [NOIP 模拟]潜水员 DP
- 【NOIp模拟】【dp】俄罗斯方块
- NOIP模拟题 2016.9.3 [数论] [逆序对] [树状数组] [树形dp]
- NOIP模拟题 2016.10.18 [二分答案] [从上到下的树形DP] [链表翻转]
- (vijos 1892 noip 模拟 tree)<树形DP求树的最大匹配及方案数>
- 2017NOIP模拟赛 软件安装(tarjan缩点+树形dp)
- [NOIP2017模拟]拆网线
- SSL2843 2017年11月8日提高组T2 拆网线(树形dp)
- java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive
- 公司生产管理系统如何精细管控生产全过程
- day22
- ubuntu下wifi灰色的解决办法
- 排序算法(二)希尔排序
- [NOIP模拟] 拆网线 树形DP
- 【DSP】TMS320F28335 扩展SRAM
- Android studio操作
- 对VUE项目实现的理解
- day23
- <Python> 递归展开嵌套列表等可迭代对象(list,dict,set...)
- sql命令笔记
- 利用Maxwell组件实时监听Mysql的binlog日志,并且把解析的json格式数据发送到kafka窗口供实时消费
- Spring 源码导入Eclipse