直接去想怎么是合法的三角形,比较麻烦。如果我们想不合法的三角形,我们可以发现因为距离都是树上的距离,只有三个点在一条链上的时候才是不合法的。否则都是合法的三角形。所以要算出不合法的三角形。
也就是我们要枚举每一条链?怎么枚举呢?

这个就和点分治比较类似了,只不过我们不用点分治这么麻烦,我们直接枚举每个点为三角形中间的点v,其余两个点在不同子树中的答案即可。

AC代码:

#pragma GCC optimize("-Ofast","-funroll-all-loops")
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e5+10;
int n,dp[N],sz[N],res,tot;
vector<int> g[N];
void dfs(int x,int fa){sz[x]=1;    int sum=0;for(int i=0;i<g[x].size();i++){int to=g[x][i];    if(to==fa)    continue;dfs(to,x); res+=sum*sz[to];sum+=sz[to];    sz[x]+=sz[to];}res+=(n-sz[x])*(sz[x]-1);
}
signed main(){cin>>n;for(int i=1,a,b;i<n;i++)   scanf("%lld %lld",&a,&b),g[a].push_back(b),g[b].push_back(a);dfs(1,1);    tot=n*(n-1)*(n-2)/6;printf("%.8lf\n",(double)(tot-res)/tot);return 0;
}

Chino with Triangle相关推荐

  1. Chino with Triangle ( 西工大程序设计创新实践基地春季选拔赛)树形dp

    https://ac.nowcoder.com/acm/contest/553/E 题意,是中文,没有什么读不懂的. 做法,肯定是树形dp,如果想到,正难则反,一条链上的不可以组成三角形,这道题就不难 ...

  2. [JS][C++]两题斐波那契数列:上台阶、triangle

    上台阶 时间限制: 3000MS 内存限制: 589824KB 题目描述: 有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第m级,共有多少走法? 注:规定从一级到一级有0种走法. ...

  3. 设计一个扩展自抽象类geometricobject的新的triangle类_C++ 接口(抽象类)

    C++ 接口(抽象类) 接口描述了类的行为和功能,而不需要完成类的特定实现. C++ 接口是使用抽象类来实现的,抽象类与数据抽象互不混淆,数据抽象是一个把实现细节与相关的数据分离开的概念. 如果类中至 ...

  4. 帕斯卡三角形(Pascal's triangle)

    // The following code is compiled on VC2005 // #include "stdafx.h" /*--------------------- ...

  5. [leedcode 118] Pascal's Triangle

    Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5, Retu ...

  6. [LeetCode 120] - 三角形(Triangle)

    问题 给出一个三角形,找出从顶部至底部的最小路径和.每一步你只能移动到下一行的邻接数字. 例如,给出如下三角形: [ [2], [3,4], [6,5,7], [4,1,8,3] ] 从顶部至底部的最 ...

  7. D - Triangle Partition HDU - 6300 sort(cmp)

    D - Triangle Partition HDU - 6300 题解 由于三点不共线,且三角形不相交,则对坐标排序,输出 #include<bits/stdc++.h> using n ...

  8. Leetcode 118:Pascal's Triangle 杨辉三角

    118:Pascal's Triangle 杨辉三角 Given a non-negative integer numRows, generate the first numRows of Pasca ...

  9. LintCode: Triangle

    C++ 逆推 1 class Solution { 2 public: 3 /** 4 * @param triangle: a list of lists of integers. 5 * @ret ...

最新文章

  1. less than 50000 rmb convertible car
  2. 汇编-输出寄存器的值-输出值
  3. linux时间子系统之,linux时间子系统(四)
  4. 大学生职业生涯规划计划与路径_我校举办2020年大学生职业生涯规划大赛
  5. Docker简单入门
  6. java创建xml设置路径_java 写入xml文件 地址如何设置为局域网内的另一台服务器上...
  7. 离散数学第一章(知识点总结)
  8. kepware mysql_Kepware EX6与MySQL数据库通讯(上篇)
  9. mysql dbutil_DBUtil连接数据库
  10. 王道计算机考研数据结构—学习笔记Chapter Five 串String
  11. 从0开始,使用豆瓣数据集做一个基于FM和逻辑回归的电影推荐系统
  12. flutter代码中使用Android/ios原生生命周期
  13. 触摸屏在环卫车辆上装控制系统的应用
  14. 欧拉降幂公式模板hdu4704
  15. IOS 读二进制数据文件
  16. 机器学习数据的预处理
  17. 解决win10自带播放器 HEVC视频扩展 需付费方法
  18. Learning AV Foundation(三)AVAudioRecorder
  19. c语言杨辉三角的实验心得体会范文,大学生实验心得体会精选范文5篇
  20. 关闭outlook express系统提示压缩邮件导致邮件丢失

热门文章

  1. 限定当天的可用次数 redis
  2. 企业如何使用商业智能(BI)进行数据赋能?
  3. php 生成excel透视表,是否可以使用PhpExcel库生成或克隆数据透视表?
  4. Kubernetes 可扩展性简介
  5. 逻辑推理题(C语言实现)
  6. OPA2376AIDGKR
  7. 基于VS Code搭建通用ARM微控制器开发平台
  8. 贝尔商道赚钱思维36道第12道:养成微习惯
  9. 计算机无法连接网络显示错误651,电脑宽带连不上显示错误651是什么意思?
  10. Future 模式与 Promise 模式