Abandoned country(最小生成树+树形DP)
#include<bits/stdc++.h>
using namespace std; struct node{
int u, v, w, nex;
bool gone; node(){}
node(int a,int b,int c){
u = a;v = b;w = c;gone = false;
}
bool operator <(const node&a)const{
return w < a.w;
}
};
const int maxE = ;
const int maxP = ;
node Gra[maxE];
int dp[maxP], F[maxP];
int T,n,m;
long long ans;
double edgeSum;
vector<pair<int, int> >mp[maxP]; int Find(int x){
if(F[x] == x) return x;
return F[x] = Find(F[x]);
} void init(int nn){
for(int i = ; i <= nn; i ++){
F[i] = i;
mp[i].clear();
}
edgeSum = ;
ans = ;
} int dfs(int rt, int no){
int point = ;
for(int i = mp[rt].size() - ; i >=; i --){
int to = mp[rt][i].first;
int w = mp[rt][i].second;
if(to == no) continue;
point += dfs(to, rt);
double temp = ((double)dp[to] * (double)(n - dp[to]) * w);
edgeSum += temp;
}
dp[rt] = point;
return point;
} int main(){
int w,v,u;scanf("%d",&T);
while(T --){
scanf("%d%d",&n,&m);
init(n);
for(int i = ; i < m; i ++){
scanf("%d%d%d",&Gra[i].u,&Gra[i].v,&Gra[i].w);
}
sort(Gra, Gra + m);
for(int i = ; i < m; i ++){
u = Gra[i].u;v = Gra[i].v;w = Gra[i].w;
int fina = Find(u), finb = Find(v);
if(fina != finb){
F[fina] = finb;
ans = ans + w;
mp[u].push_back(make_pair(v,w));
mp[v].push_back(make_pair(u,w));
}
}
dfs(, );
printf("%lld %.2lf\n",ans,edgeSum*2.0/n/(n - ));
}
return ;
}
Abandoned country(最小生成树+树形DP)的更多相关文章
- HDU 5723 Abandoned country 最小生成树+搜索
Abandoned country Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others ...
- HDU 4126 Genghis Khan the Conqueror 最小生成树+树形dp
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4126 Genghis Khan the Conqueror Time Limit: 10000/50 ...
- hdu 4081 最小生成树+树形dp
思路:直接先求一下最小生成树,然后用树形dp来求最优值.也就是两遍dfs. #include<iostream> #include<algorithm> #include< ...
- Install Air Conditioning HDU - 4756(最小生成树+树形dp)
Install Air Conditioning HDU - 4756 题意是要让n-1间宿舍和发电站相连 也就是连通嘛 最小生成树板子一套 但是还有个限制条件 就是其中有两个宿舍是不能连着的 要求所 ...
- hdu 5723 Abandoned country 最小生成树 期望
Abandoned country 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5723 Description An abandoned coun ...
- hdu 5723 Abandoned country 最小生成树+子节点统计
Abandoned country Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others ...
- 【HDU - 4340】Capturing a country(树形DP)
BUPT2017 wintertraining(15) #8A 题意 n(<100)个城市组成的树.A攻击i城市需要a[i]代价,B需要b[i].如果一个城市的邻居被A攻击了,那么A攻击它只要A ...
- HDU 5723 Abandoned country(最小生成树 + 树形DP)
[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=5723 [题目大意] n座城市,m条路径,求解: 1.最短的路径和,使得n座城市之间直接或者间接连通 ...
- hdu4126Genghis Khan the Conqueror (最小生成树+树形dp)
Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 327680/327680 K (Java/Others) Total Submiss ...
随机推荐
- Python开发【笔记】:抓包(实时分隔)
抓包 进行linux系统抓包,并且定时分隔防止文件太大 #!/usr/bin/env python # -*- coding:utf-8 -*- import os import sys import ...
- 那些年读过的书《Java并发编程实战》一、构建线程安全类和并发应用程序的基础
1.线程安全的本质和线程安全的定义 (1)线程安全的本质 并发环境中,当多个线程同时操作对象状态时,如果没有统一的状态访问同步或者协同机制,不同的线程调度方式和不同的线程执行次序就会产生不同的不正确的 ...
- js中常用的offset client screen对象
javascript中offsetWidth.clientWidth.width.scrollWidth.clientX.screenX.offsetX.pageX offsetWidth //返回元 ...
- JavaScript 学习笔记-HTML&&DOM
HTML DOM (文档对象模型) 当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model). HTML DOM 模型被构造为对象的树. JavaScript 能够 ...
- 兼容ie10及以上css3加载进度动画
html <div class="spinner"> <div class="rect1"></div> < ...
- android仿支付宝输入车牌号
这个是iOS的效果图,差异不大,楼主主攻OC,见谅 需要用到的xml文件 需要用到的类 number_or_letters.xml <?xml version="1.0" e ...
- zookeeper三种模式安装详解(centos 7+zookeeper-3.4.9)
zookeeper有单机.伪集群.集群三种部署方式,可根据自己实际情况选择合适的部署方式.下边对这三种部署方式逐一进行讲解. 一 单机模式 1.下载 进入要下载的版本的目录,选择.tar.gz文件下载 ...
- 关于Go,你可能不注意的7件事
转自: https://tonybai.com/2015/09/17/7-things-you-may-not-pay-attation-to-in-go/ Go以简洁著称,但简洁中不乏值得玩味的小细 ...
- 多线程——newCachedThreadPool线程池
newCachedThreadPool线程池: 理解: 1).newCachedThreadPool可以创建一个无限大小的线程池(实际上是一个可缓存线程池). 可以通过Executors的静 ...
- NO Route to Host 连接mysql数据库
显然是请求被服务器的防火墙给拦截了 1,vi /etc/sysconfig/iptables 2,在倒数第三行以前添加 -A INPUT -p tcp -m state --state NEW -m ...