概述
C. Game on Tree
单独考虑每个点对答案的贡献。
删除一个点的方案是删除它或者它的祖先,那么对答案的贡献是 1 dep u frac 1 {text{dep}_u} depu1
#include<cstdio>
#include<vector>
int n;
std::vector<int> g[100005];
int dep[100005];
void dfs(int u,int fa)
{
dep[u]=dep[fa]+1;
for(auto v:g[u])
{
if(v==fa) continue;
dfs(v,u);
}
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
int u,v;
scanf("%d%d",&u,&v);
g[u].push_back(v);
g[v].push_back(u);
}
dfs(1,0);
double ans=0;
for(int i=1;i<=n;i++) ans+=1.0/dep[i];
printf("%.7lfn",ans);
return 0;
}
最后
以上就是冷酷牛排为你收集整理的codeforces280 C. Game on Tree(期望)的全部内容,希望文章能够帮你解决codeforces280 C. Game on Tree(期望)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复