题目大意:

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. Example of dynamic programmatic description

    - Suppose there are some itineraries in the Itinerary page, and you want to check on all of them. Se ...

  2. Python集成开发环境Pycharm+Git+Gitee(码云)

    ********************************************************************* 本文主要介绍集成开发环境的配置过程,方便多人协作办公.代码版 ...

  3. span 设置inline-block 写文字的span错位

    写一个如下图这样排版 设置几个span为inline-block  中间的span写了文字的span错位了 解决方案 给span添加 vertical-align: top

  4. PAT程序设计

    VS2013中自行对齐的快捷键操作: CTRL+K+F 1.定义二维数组 ]=]; 2.绝对值函数 int abs(int i) 返回整型参数i的绝对值 double cabs(struct comp ...

  5. linux终端命令行缩短显示路径

    1,修改.bashrc文件(用户根目录下) vim 打开.bashrc文件,找到如下这行: else PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ...

  6. MVC5+EF6 完整教程

    随笔分类 - MVC ASP.NET MVC MVC5+EF6 完整教程17--升级到EFCore2.0 摘要: EF Core 2.0上周已经发布了,我们也升级到core 文章内容基于vs2017, ...

  7. Nginx+PHP-FPM远程命令执行_CVE-2019-11043

    漏洞描述 此次漏洞主要由于 PHP-FPM 中 sapi/ fpm/ fpm/ fpm_main.c 文件内的 env_path_info 下溢导致,攻击者可以使用换行符 %0a 破坏 Nginx 中 ...

  8. 虚拟机linux系统 硬盘/root路径扩容

    调整完后,重新打开虚拟机,使用fdisk -l查看,可以看到我们刚刚扩容的空间已经可以看到,但没有分区,还不能使用./dev/sda已经拥有了扩大的空间. 使用Linux的fdisk分区工具给磁盘/d ...

  9. Feign实现服务调用

    上一篇博客我们使用ribbon+restTemplate实现负载均衡调用服务,接下来我们使用feign实现服务的调用,首先feign和ribbon的区别是什么呢? ribbon根据特定算法,从服务列表 ...

  10. java基础之toString的使用方法

    toString方法,其返回值类型为String类型,用于返回表示对象值的字符串,返回类名和它的引用地址(散列码 hashCode)toString方法是Object类中的一个实例方法,所有的java ...