Grass Planting 题解
GrassGrassGrass PlantingPlantingPlanting 题解
题目
解题方法
方法111:树形dpdpdp
设dpidp_idpi表示以iii为根的子树需要使用的最少的草的种类数,fif_ifi表示iii节点的儿子个数,bib_ibi表示与iii结点相连的结点数量。
除了根节点以外的其他结点都与bib_ibi个结点相连,而有一个结点恰好是它的父亲结点。但是由于根结点没有父亲结点,因此
fi={bi−1i>1bii=1f_i=\begin{cases} b_i-1&i>1\\ b_i&i=1 \end{cases}fi={bi−1bii>1i=1
注:这里我们假定111是整棵树的根。
那么可以得到
dpi=maxj∈soni(dpj,fi+1,fj+2)dp_i=\max_{j\in son_i}{(dp_j,f_i+1,f_j+2)}dpi=maxj∈soni(dpj,fi+1,fj+2)
注:sonison_isoni表示iii的儿子。
上面式子的dpjdp_jdpj表示以jjj为根的子树需要使用的最少的草的种类数,fi+1f_i+1fi+1表示iii的儿子的数量再加上iii这个结点,fj+2f_j+2fj+2表示jjj的儿子的数量再加上iii和jjj两个结点。
那么答案就是dp1dp_1dp1。
时间复杂度为O(n)O(n)O(n)。
方法222:图论
设bib_ibi表示与iii结点相连的结点数量。
我们可以发现,答案就是maxi=1nbi+1\max_{i=1}^{n}{b_i}+1maxi=1nbi+1。
时间复杂度为O(n)O(n)O(n)。
Grass Planting 题解相关推荐
- 洛谷 P5197 [USACO19JAN]Grass Planting 题解
题目:P5197 [USACO19JAN]Grass Planting 图论 - 树 题目大意 给出一棵无根树,要给每个节点染上颜色,要求对于每两个最短距离小于等于222的点,不能染上相同的颜色,求最 ...
- 2419. Grass Planting
2419. Grass Planting 题目描述 到了一年中Farmer John在他的草地里种草的时间了.整个农场由N块草地组成(1≤N≤10^5),方便起见编号为1-N,由N−1条双向的小路连接 ...
- (纪中)2419. Grass Planting
(File IO): input:planting.in output:planting.out 时间限制: 1000 ms 空间限制: 262144 KB 具体限制 Goto ProblemSet ...
- 【LuoguP3038/[USACO11DEC]牧草种植Grass Planting】树链剖分+树状数组【树状数组的区间修改与区间查询】...
模拟题,可以用树链剖分+线段树维护. 但是学了一个厉害的..树状数组的区间修改与区间查询.. 分割线里面的是转载的: ----------------------------------------- ...
- 洛谷5197 USACO Grass Planting
思维题-其实可以很容易想到要覆盖,类似于大星星覆盖小的,所以入度最多的点的入度+1就是答案 #include <iostream> #define MAXN 500005 using na ...
- Educational Codeforces Round 131 (Rated for Div. 2) A-D题解
题目 A. Grass Field B. Permutation C. Schedule Management D. Permutation Restoration A. Grass Field 题解 ...
- ZJNU 2021-07-14 个人排位赛3 部分题解
完全不会数据结构就比较离谱 Another One A - Roadblock Problem Link 题意 FJ的农场由 N N N个点 M M M条边组成,边存在边权 它每次都会沿着最短路径从点 ...
- USACO比赛题泛刷
随时可能弃坑. 因为不知道最近要刷啥所以就决定刷下usaco. 优先级排在学习新算法和打比赛之后. 仅有一句话题解.难一点的可能有代码. 优先级是Gold>Silver.Platinum刷不动. ...
- 2018年12月3031日
小结:昨天由于做的题目比较少,所以就和今天写在一块了,昨天学习了差分约束和树上差分,当然树上差分是用线段树来维护的,今天重点整理了博客\(233\),然后做了几个题. 一. 完成的题目: 洛谷P327 ...
最新文章
- DOM4J_Xpath的XML操作总结
- 运维自动化 第二章 openpyxl的用法,读写excel内容
- zuk z2 Android7.0官方,首发ZUK Z2官方固件ZUI2.5安卓7.0卡刷包!
- mac安装brew简单方法
- k-means算法的matlab代码实现_MATLAB遗传算法及其实现
- C#LeetCode刷题之#66-加一(Plus One)
- 【链接】 一篇很好的有关卡特兰数的博文
- 舞台灯恒流芯片 无频闪无噪音 多路共阳 调光深度0.1% 方案分享
- java 格式化日期(DateFormat)
- Linux命令行学习日志-ps ax
- kernighan lin算法
- hive對於數據是懶加載的_05-配置数据库的远程连接 创建hive数据库的时候要选择latin1...
- VLAN的分类与实验
- linux apache支持ipv6,如何在Nginx和Apache中启用IPv6?
- DMSP/OLS夜间灯光数据
- 我的第一个项目(员工绩效管理系统 步骤超级详细---未完待更...)
- 自回归模型的两种策略——马尔科夫假设与隐变量自回归模型
- lynx浏览器的使用教程
- java 随机生成六位数的密码 (000001-999999)
- http协议与tcp协议区别