题目大意:

https://www.cnblogs.com/forever97/p/3603572.html

讲解:https://www.jianshu.com/p/d40a740a527e

题解:https://www.cnblogs.com/shuaihui520/p/10278840.html

#include <bits/stdc++.h>
using namespace std;
const double eqs=1e-;
int n,m;
double f;
struct NODE {
int v; double w,t,val;
bool operator <(const NODE& p)const {
return val<p.val;
}
};
vector <NODE> G[];
bool vis[];
double prim(double x) {
memset(vis,,sizeof(vis));
priority_queue <NODE> q;
while(!q.empty()) q.pop();
for(int i=;i<G[].size();i++) {
NODE e=G[][i];
e.val=e.w-x*e.t;
q.push(e);
} vis[]=;
int cnt=;
double X=0.0, Y=0.0;
while(!q.empty()) {
NODE e=q.top(); q.pop();
if(vis[e.v]) continue;
vis[e.v]=;
cnt++; X+=e.w, Y+=e.t;
if(cnt==n-) break;
for(int i=;i<G[e.v].size();i++) {
NODE p=G[e.v][i];
p.val=p.w-x*p.t;
q.push(p);
}
}
return X/Y;
}
int main()
{
while(~scanf("%d%d%lf",&n,&m,&f)) {
f/=1.0*(n-);
while(m--) {
int u,v; double w,t;
scanf("%d%d%lf%lf",&u,&v,&w,&t);
G[u].push_back({v,f-w,t,0.0});
G[v].push_back({u,f-w,t,0.0});
}
double ans=0.0, tmp=0.0;
while() {
ans=prim(tmp);
if(abs(ans-tmp)<eqs) break;
tmp=ans;
}
if(ans>) printf("%.4f\n",ans);
else printf("0.0000");
} return ;
}

USACO 2001 OPEN earthquake /// 最优比例生成树的更多相关文章

  1. POJ 2728 Desert King(最优比例生成树 二分 | Dinkelbach迭代法)

    Desert King Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 25310   Accepted: 7022 Desc ...

  2. POJ 2728 Desert King (最优比例生成树)

    POJ2728 无向图中对每条边i 有两个权值wi 和vi 求一个生成树使得 (w1+w2+...wn-1)/(v1+v2+...+vn-1)最小. 采用二分答案mid的思想. 将边的权值改为 wi- ...

  3. 01分数规划poj2728(最优比例生成树)

    Desert King Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 21766   Accepted: 6087 Desc ...

  4. poj 2728 Desert King(最优比例生成树)

    #include <iostream> #include <cstdio> #include <cmath> #include <cstdlib> #i ...

  5. poj 2728 最优比例生成树(01分数规划)模板

    /* 迭代法 :204Ms */ #include<stdio.h> #include<string.h> #include<math.h> #define N 1 ...

  6. POJ 2728 Desert King 01分数规划,最优比率生成树

    一个完全图,每两个点之间的cost是海拔差距的绝对值,长度是平面欧式距离, 让你找到一棵生成树,使得树边的的cost的和/距离的和,比例最小 然后就是最优比例生成树,也就是01规划裸题 看这一发:ht ...

  7. poj 2728 Desert King (最小比例生成树)

    http://poj.org/problem?id=2728 Desert King Time Limit: 3000MS   Memory Limit: 65536K Total Submissio ...

  8. Desert King(最优比率生成树)

    Desert King Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 22717   Accepted: 6374 Desc ...

  9. 【POJ2728】Desert King 最优比率生成树

    题目大意:给定一个 N 个点的无向完全图,边有两个不同性质的边权,求该无向图的一棵最优比例生成树,使得性质为 A 的边权和比性质为 B 的边权和最小. 题解:要求的答案可以看成是 0-1 分数规划问题 ...

随机推荐

  1. PAT甲级——A1149DangerousGoodsPackaging【25】

    When shipping goods with containers, we have to be careful not to pack some incompatible goods into ...

  2. Vue篇1

    2019 Vue 面试题汇总(持续更新中...) 1. vue中的MVVM模式 即Model-View-ViewModel. Vue是以数据为驱动的,Vue自身将DOM和数据进行绑定,一旦创建绑定,D ...

  3. jsp 内置对象HTTP协议

    有些对象不用声明就能够在JSP页面的脚本部分使用,这就是JSP的内置对象. JSP的内置对象有:request .response.session.application.out. 下面我们将一一介绍 ...

  4. 为IIS服务器配置SSL,并设置为默认使用https协议访问网站

    要使网站支持https协议,需要SSL证书,我的服务器和域名都是在阿里云购买的,所以这里我演示阿里云获取SSL证书的方法 我先说下我的服务器环境:windows server 2012 + IIS8. ...

  5. Spark使用Java读取mysql数据和保存数据到mysql

    原文引自:http://blog.csdn.net/fengzhimohan/article/details/78471952 项目应用需要利用Spark读取mysql数据进行数据分析,然后将分析结果 ...

  6. 无法启动此程序 ,因为计算机中丢失MSVCP120.dll

    1.文件丢失问题 无法启动此程序 ,因为计算机中丢失MSVCP120.dll 具体如下图所示: 等dll文件丢失,可以去下载 DirectX修复工具去修复即可 http://www.pc6.com/s ...

  7. C stdarg.h

    参考:https://www.cnblogs.com/bettercoder/p/3488299.html    博主:运动和行动 va_start宏,获取可变参数列表的第一个参数的地址(list是类 ...

  8. Codeforces Round #568 (Div. 2) G2. Playlist for Polycarp (hard version)

    因为不会打公式,随意就先将就一下? #include<cstdio> #include<algorithm> #include<iostream> #include ...

  9. KindEditor在eclipse里的配置方法

    KindEditor介绍: kindEditor是一款国产富文本编辑器,类似fckeditor和目前比较流行的百度Ueditor.其产品官方网站为http://kindeditor.net/ Kind ...

  10. 简单记录下Jmeter通过CSV保存测试数据,测试用例,及将测试结果导出到Excel里

    1.CSV保存测试数据,并上传到CSV Data Set Config,设置相关属性 2.CSV保存测试用例,并上传到CSV Data Set Config,设置相关属性 3.设置一个http请求,设 ...