Chino with Triangle
直接去想怎么是合法的三角形,比较麻烦。如果我们想不合法的三角形,我们可以发现因为距离都是树上的距离,只有三个点在一条链上的时候才是不合法的。否则都是合法的三角形。所以要算出不合法的三角形。
也就是我们要枚举每一条链?怎么枚举呢?
这个就和点分治比较类似了,只不过我们不用点分治这么麻烦,我们直接枚举每个点为三角形中间的点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相关推荐
- Chino with Triangle ( 西工大程序设计创新实践基地春季选拔赛)树形dp
https://ac.nowcoder.com/acm/contest/553/E 题意,是中文,没有什么读不懂的. 做法,肯定是树形dp,如果想到,正难则反,一条链上的不可以组成三角形,这道题就不难 ...
- [JS][C++]两题斐波那契数列:上台阶、triangle
上台阶 时间限制: 3000MS 内存限制: 589824KB 题目描述: 有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第m级,共有多少走法? 注:规定从一级到一级有0种走法. ...
- 设计一个扩展自抽象类geometricobject的新的triangle类_C++ 接口(抽象类)
C++ 接口(抽象类) 接口描述了类的行为和功能,而不需要完成类的特定实现. C++ 接口是使用抽象类来实现的,抽象类与数据抽象互不混淆,数据抽象是一个把实现细节与相关的数据分离开的概念. 如果类中至 ...
- 帕斯卡三角形(Pascal's triangle)
// The following code is compiled on VC2005 // #include "stdafx.h" /*--------------------- ...
- [leedcode 118] Pascal's Triangle
Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5, Retu ...
- [LeetCode 120] - 三角形(Triangle)
问题 给出一个三角形,找出从顶部至底部的最小路径和.每一步你只能移动到下一行的邻接数字. 例如,给出如下三角形: [ [2], [3,4], [6,5,7], [4,1,8,3] ] 从顶部至底部的最 ...
- D - Triangle Partition HDU - 6300 sort(cmp)
D - Triangle Partition HDU - 6300 题解 由于三点不共线,且三角形不相交,则对坐标排序,输出 #include<bits/stdc++.h> using n ...
- Leetcode 118:Pascal's Triangle 杨辉三角
118:Pascal's Triangle 杨辉三角 Given a non-negative integer numRows, generate the first numRows of Pasca ...
- LintCode: Triangle
C++ 逆推 1 class Solution { 2 public: 3 /** 4 * @param triangle: a list of lists of integers. 5 * @ret ...
最新文章
- less than 50000 rmb convertible car
- 汇编-输出寄存器的值-输出值
- linux时间子系统之,linux时间子系统(四)
- 大学生职业生涯规划计划与路径_我校举办2020年大学生职业生涯规划大赛
- Docker简单入门
- java创建xml设置路径_java 写入xml文件 地址如何设置为局域网内的另一台服务器上...
- 离散数学第一章(知识点总结)
- kepware mysql_Kepware EX6与MySQL数据库通讯(上篇)
- mysql dbutil_DBUtil连接数据库
- 王道计算机考研数据结构—学习笔记Chapter Five 串String
- 从0开始,使用豆瓣数据集做一个基于FM和逻辑回归的电影推荐系统
- flutter代码中使用Android/ios原生生命周期
- 触摸屏在环卫车辆上装控制系统的应用
- 欧拉降幂公式模板hdu4704
- IOS 读二进制数据文件
- 机器学习数据的预处理
- 解决win10自带播放器 HEVC视频扩展 需付费方法
- Learning AV Foundation(三)AVAudioRecorder
- c语言杨辉三角的实验心得体会范文,大学生实验心得体会精选范文5篇
- 关闭outlook express系统提示压缩邮件导致邮件丢失