HDU 2376(树上任意2点间的距离)
来源:互联网 发布:美剧学口语 知乎 编辑:程序博客网 时间:2024/05/22 09:48
题目链接
题意:求树上任意2点之间距离的期望
dfs跑一遍,统计每条边的贡献
#include<bits/stdc++.h>using namespace std;#define cl(a,b) memset(a,b,sizeof(a))#define LL long longconst int maxn = 11005;const int inf = 1 << 23;struct Edge{ int to ,w; Edge(){} Edge(int a,int b){ to=a; w=b; }};int n;vector<Edge> G[maxn];LL sum[maxn];double ret = 0;void dfs(int x,int fa){ sum[x]=1; for(int i=0;i<G[x].size();i++){ int y = G[x][i].to; int w = G[x][i].w; if(y==fa)continue; dfs(y,x); sum[x]+=sum[y]; ret+= sum[y]*(n-sum[y])*w; }}int main(){ int T;scanf("%d",&T); while(T--){ for(int i=0;i<maxn;i++)G[i].clear(); scanf("%d",&n); for(int i=0;i<n-1;i++){ int x,y,z; scanf("%d%d%d",&x,&y,&z); G[x].push_back(Edge(y,z)); G[y].push_back(Edge(x,z)); } cl(sum,0); ret = 0; dfs(0,-1); printf("%.10lf\n",ret/(n-1)/n*2); } return 0;}
0 0
- HDU 2376(树上任意2点间的距离)
- hdu 2376(求树上任意两点之间距离之和的平均值)
- HDU 5723 Abandoned country (并查集 + DFS+求解树上任意两点间的距离的平均值)
- hdu 2376 Average distance DFS 求树上任意两点距离和
- hdu 2196 computer 求树上的任意最远点对 O(n)
- HDU 2196 Computer(求树上每个节点到其它点的最远距离)
- hdu 4612 Warm up (手动扩栈,求树上哪两个点的距离最远)
- HDU 2196 Computer(求树上每个节点到其它点的最远距离 树dp)
- HDU 2196 - Computer (树上每点最长距离 DP)
- hdu 2586 树上点对最近距离 (lca)
- 点到任意直线的距离
- loj 1257 (求树上每一个点到树上另一个点的最长距离)
- 计算git树上任意两点的最近分割点。
- Codeforces Round #358 (Div. 2) C. Alyona and the Tree(如果这棵树合法有一个条件:对于树上任意一个点,它的祖先到它的距离小于等于它自己的值)
- POJ 2874 LCA 树上任意两点距离
- hdu 2196(求树上每个节点到树上其他节点的最远距离)
- HDU2376Average distance(树形dp|树上任意两点距离和的平均值)
- 【HDU】2586 How far away ? LCA求树上点对最近距离
- spring配置多数据源
- 数据库一对一,多对一,多对多的关系
- 我眼中 迪杰斯特拉(Dijkstra)与 普雷姆 (prim)的 区别
- Swift基础(十一)多线程
- java环境搭建问题及eclipse打不开的解决方式
- HDU 2376(树上任意2点间的距离)
- 浅谈:request,session,application
- 京东一元抢宝系统的数据库架构优化
- 用FSM写Case,玩过没?
- leetcode_c++:栈:Valid Parentheses(020)
- 21分钟 MySQL 入门教程(转)
- JDBC
- 如何评价电视剧《天道》?
- Service分析(上)