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 ...
随机推荐
- java中使用jdbc配置连接串时mysql 5.6与5.7版本“编码”参数有区别!
在mysql5.6中 java程序使用jdbc时链接字符串应该使用?characterEncoding=utf-8,而5.7版本可以省略,否则可能会有相关的语句执行结果出错! String drive ...
- overridePendingTransition
通过调用overridePendingTransition() 可以实时修改Activity的切换动画. 注意:该函数必须在Activity的onCreate()中调用或者finish()后立即调用.
- python全栈开发day12
列表 创建列表: 基本操作: 索引 切片 追加 删除 长度 切片 循环 包含 #######################列表list类中提供的方法######################## ...
- JavaScript 数组(Array)对象
1.Array相关的属性和方法 Array对象属性 constructor 返回对创建此对象的数组函数的引用: length 设置或返回数组中元素的数目: prototype 使您有能力向对象添加属性 ...
- Java Web----------response&&request
1.response 代表响应, 可以理解为一个空的箱子,我们在里面填入要发送到浏览器的内容. 服务器会把这些内容组装成http响应. 1.1 响应首行 协议/版本号 状态码 状态码描述 添加状态码 ...
- Java 堆外内存
入口ByteBuffer.allocateDirect public static ByteBuffer allocateDirect(int capacity) { return new Direc ...
- SpringBoot-@async异步执行方法
启动加上@EnableAsync ,需要执行异步方法上加入 @Async 在方法上加上@Async之后 底层使用多线程技术 演示代码: @RestController @Slf4j public c ...
- linux网络设置和虚拟机克隆转移之后网卡找不到
linux网络设置和虚拟机克隆转移之后Error:No suitable device found:no device found for connection 'System eth0'问题解决 ...
- ACM-最短路之中的一个个人的旅行——hdu2066
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/lx417147512/article/details/27235809 ************** ...
- 萌新接触前端的第三课——JavaScript
JavaScript概述 一.JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中).后将其改名ScriptEase ...