题目描述
题解
贪心:如果一个点被覆盖,那么它的父亲和所有儿子都没必要被覆盖;如果一个点的父亲被覆盖,那么这个点以及它所有的兄弟都没必要被覆盖。所以可以遍历每一个点,如果这个点所有的儿子都没被覆盖并且这个点也没被覆盖,就将它的父亲覆盖,答案+1。
dp:
f[i][0]:以i为根的子树中所有点均被覆盖且草地i上无信号塔所需的最小塔数(i被其儿子覆盖)
f[i][1]:以i为根的子树中所有点均被覆盖且草地i上有信号塔所需的最小塔数
f[i][2]:以i为根的子树中除i点以外其余点均被覆盖所需的最小塔数
代码
贪心
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
const int max_n=1e4+5;
const

本文介绍了BZOJ1596题目的解决方案,重点探讨了利用贪心策略和树形动态规划(DP)来优化电话网络的信号塔覆盖问题。在贪心方法中,当一个节点被覆盖,其父节点和所有子节点无需额外覆盖。而在DP解法中,定义了三种状态来求解以特定节点为根的子树覆盖所需最少塔数。
最低0.47元/天 解锁文章
1922

被折叠的 条评论
为什么被折叠?



