显然的0/1分数规划问题,用二分来解决,检验mid,就用prim算法求最小生成树,看总边权是否大等于0即可验证。

  1. 1 #include<bits/stdc++.h>
  2. 2 using namespace std;
  3. 3 const int M=1006;
  4. 4 const double eps=1e-8;
  5. 5 struct node{
  6. 6 double x,y,z;
  7. 7 }p[M];
  8. 8 double a[M][M],c[M][M];
  9. 9 bool v[M];
  10. 10 double d[M];
  11. 11 int n;
  12. 12
  13. 13 double dist(int i,int j){
  14. 14 return sqrt((p[i].x-p[j].x)*(p[i].x-p[j].x)+(p[i].y-p[j].y)*(p[i].y-p[j].y));
  15. 15 }
  16. 16
  17. 17 bool ck(double b){
  18. 18 double ans=0;
  19. 19 for(int i=0;i<=n+1;i++) d[i]=1e18;
  20. 20 memset(v,0,sizeof(v));
  21. 21 d[1]=0;
  22. 22 for(int i=1;i<=n;i++){
  23. 23 int x=0;
  24. 24 for(int j=1;j<=n;j++)
  25. 25 if(!v[j]&&(x==0||d[j]<d[x])) x=j;
  26. 26 v[x]=1;
  27. 27 ans+=d[x];
  28. 28 for(int j=1;j<=n;j++)
  29. 29 if(!v[j]) d[j]=min(d[j],c[x][j]-b*a[x][j]);
  30. 30 }
  31. 31 if(ans+eps>=0) return true;
  32. 32 return false;
  33. 33 }
  34. 34
  35. 35 int main(){
  36. 36 while(cin>>n&&n){
  37. 37 for(int i=1;i<=n;i++){
  38. 38 double x,y,z;
  39. 39 cin>>x>>y>>z;
  40. 40 p[i]=(node){x,y,z};
  41. 41 }
  42. 42 for(int i=1;i<=n;i++)
  43. 43 for(int j=i+1;j<=n;j++){
  44. 44 a[i][j]=a[j][i]=dist(i,j);
  45. 45 c[i][j]=c[j][i]=abs(p[i].z-p[j].z);
  46. 46 }
  47. 47 double l=0,r=1e8;
  48. 48 while(l+eps<r){
  49. 49 double mid=(l+r)/2.0;
  50. 50 if(ck(mid)) l=mid;
  51. 51 else r=mid;
  52. 52 }
  53. 53 printf("%.3lf\n",l);
  54. 54 }
  55. 55 return 0;
  56. 56 }

POJ2728 Desert King (最小生成树、0/1分数规划)的更多相关文章

  1. poj2728 Desert King【最优比率生成树】【Prim】【0/1分数规划】

    含[最小生成树Prim]模板. Prim复杂度为$O(n^2),适用于稠密图,特别是完全图的最小生成树的求解.   Desert King Time Limit: 3000MS   Memory Li ...

  2. [POJ2728] Desert King 解题报告(最优比率生成树)

    题目描述: David the Great has just become the king of a desert country. To win the respect of his people ...

  3. POJ2728 Desert King

    一道生成树+\(0/1\)分数规划 原题链接 设每条边的距离为\(dis[x]\),两点高度差为\(h[x]\),该图的生成树为\(T\),则题目实际求的就是\(\dfrac{\sum\limits_ ...

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

    POJ2728 Desert King Description David the Great has just become the king of a desert country. To win ...

  5. poj 2976 Dropping tests 0/1分数规划

    0/1分数规划问题,用二分解决!! 代码如下: #include<iostream> #include<stdio.h> #include<algorithm> # ...

  6. bzoj 3597: [Scoi2014]方伯伯运椰子 0/1分数规划

    3597: [Scoi2014]方伯伯运椰子 Time Limit: 30 Sec  Memory Limit: 64 MBSubmit: 144  Solved: 78[Submit][Status ...

  7. LOJ 3089 「BJOI2019」奥术神杖——AC自动机DP+0/1分数规划

    题目:https://loj.ac/problem/3089 没想到把根号之类的求对数变成算数平均值.写了个只能得15分的暴力. #include<cstdio> #include< ...

  8. POJ - 2976 Dropping tests && 0/1 分数规划

    POJ - 2976 Dropping tests 你有 \(n\) 次考试成绩, 定义考试平均成绩为 \[\frac{\sum_{i = 1}^{n} a_{i}}{\sum_{i = 1}^{n} ...

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

    题目 http://poj.org/problem?id=2728 关键词:0/1分数规划,参数搜索,二分法,dinkelbach 参考资料:http://hi.baidu.com/zzningxp/ ...

随机推荐

  1. 实践GoF的23种设计模式:观察者模式

    摘要:当你需要监听某个状态的变更,且在状态变更时通知到监听者,用观察者模式吧. 本文分享自华为云社区<[Go实现]实践GoF的23种设计模式:观察者模式>,作者: 元闰子 . 简介 现在有 ...

  2. DateFormat类的format方法和parse方法

    /** * 使用DateFormat类中的方法format,把日期格式化为文本 * String format(Date date) 按照指定的模式把Date日期格式化为符合模式的字符串 * 使用步骤 ...

  3. LGV 引理

    (其实是贺的:https://www.luogu.com.cn/paste/whl2joo4) 目录 LGV 引理 不相交路径计数 例题 Luogu6657. [模板]LGV 引理 CF348D Tu ...

  4. Swift高仿iOS网易云音乐Moya+RxSwift+Kingfisher+MVC+MVVM

    效果 列文章目录 因为目录比较多,每次更新这里比较麻烦,所以推荐点击到主页,然后查看iOS Swift云音乐专栏. 目简介 这是一个使用Swift(还有OC版本)语言,从0开发一个iOS平台,接近企业 ...

  5. Linux系列之比较命令

    前言 Linux中有两个比较命令,它们分别是comm和diff,在比较文本文件的版本时通常很有用.本文介绍它们的区别和简单用法. comm命令 该命令对两个文本文件进行比较,并显示每个文件独有的行和它 ...

  6. 5.30 NOI 模拟

    $5.30\ NOI $模拟 高三大哥最后一次模拟考了,祝他们好运 \(T1\)装箱游戏 显然可以将四种字母之间的空缺当做状态枚举 那么这道题就很显然了 #include<bits/stdc++ ...

  7. BZOJ4569 [Scoi2016]萌萌哒(并查集,倍增)

    类似\(ST表\)的思想,倍增\(log(n)\)地合并 你是我家的吗?不是就来呀啦啦啦.还有要来的吗?没了!那有多少个家就映射多少答案呀 倍增原来这么好玩 #include <iostream ...

  8. Luogu4111 [HEOI2015]小Z的房间 (矩阵树,辗转相除高斯消元)

    除法不能用于同余系,要辗转相除.注意不能加入柱子到矩阵. #include <iostream> #include <cstdio> #include <cstring& ...

  9. nmtui 字符界面图形模式配置

    一.通过nmtui配置网络参数 Linux系统配置网络参数的方式有很多种,其中最简单最直接的方式就是直接修改网卡配置文件,但这种方式也很容易出错,比如说IPADDR.NETMASK.GATEWAY等参 ...

  10. 理想汽车 x JuiceFS:从 Hadoop 到云原生的演进与思考

    理想汽车在 Hadoop 时代的技术架构 首先简单回顾下大数据技术的发展,基于我个人的理解,将大数据的发展分了4个时期: 第一个时期: 2006 年到 2008 年.2008 年左右,Hadoop 成 ...