题目大意:

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. jwt认证登录

    配置文件:#服务配置 server: port: 9002 #spring配置 spring: #应用配置 application: name: ynhrm-system #指定服务名 #数据库连接池 ...

  2. 20140923 cin.get() getline cin

    #include<iostream> #include<string> using namespace std; int main() {     string title; ...

  3. Javascript优点和缺点

    优点: 函数是顶级对象 基于原型继承的动态对象 对象字面量和数组字面量 缺点: 全局变量 作用域 自动插入分号 保留字 Unicode typeof parseInt + 浮点数 NaN

  4. Java面试必问-ThreadLocal

    前言 在面试环节中,考察"ThreadLocal"也是面试官的家常便饭,所以对它理解透彻,是非常有必要的. 有些面试官会开门见山的提问: “知道ThreadLocal吗?” “讲讲 ...

  5. P4363 [九省联考2018]一双木棋

    题面 这种搜索要把后继状态都跑出来之后取Min/Max 也就是回溯的时候进行操作 记得用hash进行记忆化(用map不开O2会TLE) #include<iostream> #includ ...

  6. Java-技术专区-问题专区-应该了解的基础技术点

    Java基础 Arrays.sort实现原理和Collection实现原理 foreach和while的区别(编译之后) 线程池的种类,区别和使用场景 分析线程池的实现原理和线程的调度过程 线程池如何 ...

  7. 安装FTP

    yum install vsftpd -y cd /etc/vsftpd/ touch login.txt vim login.txt db_load -T -t hash -f /etc/vsftp ...

  8. IIS 承载的服务失败

    如果 IIS 承载的某个服务失败,则可能会看到以下症状之一: 当浏览到 .svc 文件时,不能识别该文件,浏览器显示空白页,或显示文件的文本而不是服务的帮助页,如下面的示例所示.     <%@ ...

  9. RK3288 控制usb摄像头补光GPIO

    正常可以通过添加dts配置,再从设备树中读取gpio号,在这里为了简单,直接使用GPIO号,先通过终端测试gpio, 系统自带GPIO控制驱动: 内核已经自带了通用GPIO驱动,可以直接在用户空间操作 ...

  10. 第一章 Xshell5评估期已过问题

    您的Xshell评估期已过.请访问我们的在线商店购买Xshe许可证.产品密钥将通过电子邮件发送给您. 解决方法 一.进入下载网站 https://www.netsarang.com/zh/thank- ...