题意:给出一个无向树,每一个节点代表一个城市,问从给出的城市出发,每一次到达一个城市之后都会将距离他为1的城市访问完,第二天继续访问其它没有访问的城市,问最多可以持续多少天。 思路:简单的树形dp,跟树形dp模板题没有上司的舞会一样,设dp[i][0]代表不把i作为休息点的以i为根的最大天数,dp[i][1]代表把i作为休息点的以i为根的最大天数,那么转移dp[i][0]+=max(dp[儿子][0],dp[儿子][1]),dp[i][1]+=dp[儿子][0],也就是不选择这个点作为休息点那么对于儿子节点没有要求,选择后儿子节点就不能作为休息点了。 代码如下: #include<bit...