E - Water Distribution


题目大意:

有\(N\)座城市,给定这\(N\)座城市的坐标和初始的水量\(x_i,y_i,a_i\),在两个城市之间运水的花费是两个城市的欧几里得距离。最小水量的城市水量最大是多少。
\(N\le 15\)

题目分析:

看数据够小,要么爆搜要么状压。

可以发现这和经典的TSP问题有些类似。

考虑通过构建联通分量来调节水,那么我们设联通分量的城市数量为\(K\),联通分量中的总水量为\(A\),联通分量中总的边长是\(B\),那么不难发现我们能够达到的最大的最小水量就是\(\frac{A-B}{k}\),因为我们需要花费B的水量而总水量是\(A\)。

我们同样可以证明出一定能够到达\(\frac{A-B}{k}\),假设我们在点\(X\)和点\(Y\)之间建立了联系,那么如果\(X\)的水的量过大,就可以都运到\(Y\)否则我们就运送到\(X\)。

我们可以通过对每种城市分布都求MST的方法来得出以上我们所需要的。这样的时间复杂度为\(O(2^n*n^2)\),然后使用枚举子集的方式即可以在\(O(3^n)\)的时间复杂度内通过此题。

#include<bits/stdc++.h>
using namespace std;
const int N=17;
double dis[N][N],f[1<<N],x[N],y[N],a[N];
int n,m;
int main()
{cin>>n;for(int i=1;i<=n;i++){cin>>x[i]>>y[i]>>a[i];}for(int i=1;i<=n;i++)for(int j=1;j<=n;j++) dis[i][j]=sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]));for(int i=0;i<=1<<n;i++) f[i]=1e18;f[0]=0;for(int i=0;i<n;i++) f[1<<i]=0;for(int s=0;s<1<<n;s++){for(int i=0;i<=n-1;i++)for(int j=0;j<=n-1;j++)if((s&(1<<i))&&(!(s&(1<<j)))) f[s|(1<<j)]=min(f[s|(1<<j)],f[s]+dis[i+1][j+1]);}for(int s=0;s<1<<n;s++){f[s]=-f[s];for(int i=0;i<n;i++)if(s&(1<<i)) f[s]+=a[i+1];f[s]/=__builtin_popcount(s);for(int t=(s-1)&s;t;t=(t-1)&s)f[s]=max(f[s],min(f[t],f[s-t]));}printf("%.10lf\n", f[(1<<n)-1]);
}

转载于:https://www.cnblogs.com/victorique/p/10060289.html

E - Water Distribution相关推荐

  1. 北京大学计算机学院周磊,马秀莉-北京大学信息科学技术学院

    教育背景 2003 北京大学计算机科学技术系 博士 主要研究领域 数据库.数据挖掘.面向大规模实时监测中时空数据的分析和挖掘.面向多维数据的分析和挖掘.基于生物网络的挖掘 代表性学术论著 Xiuli ...

  2. 论文笔记--InterFusion

    作者提出了一种无监督的方法(InterFusion)针对学习MTS数据中不同指标间的依赖和时间顺序上的依赖性进行建模.核心思想是通过两个随机潜变量,结合变分自编码机(VAE)对多维时间序列数据中的正确 ...

  3. 使用GNN求解组合优化问题

    文章目录 1 论文内容 1.1 先验知识 1.2 论文方法 1.2.1 大致原理 1.2.2 源码关键实现 1.3 实际问题上的应用 1.3.1 风险分散 1.3.2 Interval Schedul ...

  4. 数据科学家和人工智能职业生涯之外软件公司之外的热门市场

    The dream career is one of the major tech firms for many aspiring data scientists. 吨他梦寐以求的职业是许多有抱负的数 ...

  5. 环境资源与相关词汇中英文对照

    大气 ATMOSPHERE 大气组成 Atmospheric composition 空气质量 Air quality 大气化学 Atmospheric chemistry 大气成分 Atmosphe ...

  6. 重庆大学计算机学院百度百科,朱晓红(重庆大学计算机学院副教授)_百度百科...

    朱晓红 (重庆大学计算机学院副教授) 语音 编辑 锁定 讨论 上传视频 朱晓红,女,工学博士,博士后,重庆大学计算机学院副教授.硕士生导师.研究领域包括:数据挖掘.深度学习.机器学习.主研科技部国家科 ...

  7. 基于逆向工程的内存真值检查来保卫网络物理系统

    基于逆向工程的内存真值检查来保卫网络物理系统 原文 Defending Cyber-physical Systems through Reverse Engineering Based Memory ...

  8. 单目标应用:足球联赛竞争算法(Soccer league competition algorithm,SLC)求解多仓库多旅行商问题MD-MTSP(可更改旅行商个数及起点)

    一.足球联赛竞争算法 足球联赛竞争算法(Soccer league competition algorithm,SLC)由Naser Moosavian和Babak Kasaee Roodsari于2 ...

  9. 颓废的人怎样振奋精神_5个令人振奋的行业,从事数据科学家在科技行业以外的工作...

    颓废的人怎样振奋精神 重点 (Top highlight) For many aspiring data scientists, the dream job is in one of the glob ...

最新文章

  1. 服务器双系统切换快捷键,服务器双系统同时开
  2. RedHat Enterprise Linux 5 安装GCC过程
  3. Base64编码运用与基本原理
  4. AsyncTask的用法
  5. Shank的大步小步算法(Shank‘s Baby-Step-Giant-Step Algorithm)
  6. 腾讯安全发布十大产业互联网安全议题:聚焦5G、数据加密等
  7. java程序设计基础(第3版)实验指导_清华大学出版社-图书详情-《Java程序设计基础(第5版)实验指导与习题解答》...
  8. 抑制过拟合的方法之权值衰减
  9. 我公司有个统计学的985应届(硕士)从事数据分析岗位
  10. 一个简单的基于 DirectShow 的播放器 1(封装类)
  11. NYOJ277 - 车牌号
  12. android开启前台服务_Android 知识点必知之ANR与OOM
  13. 项目管理:RASCI模型
  14. php screw.so,php screw加密
  15. 实时报价查询系统C++编程实现(阿里面试题改编)
  16. MySQL 系列(三)你不知道的 视图、触发器、存储过程、函数、事务、索引、语句
  17. f(f(x))=-x, 纯数学理解
  18. 关于判断力-兼谈IT评论界冥顽不化的愚蠢
  19. C++获取、设置鼠标坐标并移动鼠标
  20. 男人不能没钱女人不能没爱

热门文章

  1. 企业管理 为什么老板再难,也不会放弃?而员工做得不顺,就想逃走?
  2. Chrome DevTools:在 Profile 性能分析中显示原生 javascript 函数
  3. JavaCodeTra 猴子选猴王 约瑟夫循环
  4. 计算圆形是否和正方形相交 【微软面试100题 第二十三题】
  5. [原]SDL开发教程
  6. ant 编译android工程(转)
  7. 25个优秀的jQuery滑块教程和插件
  8. 翻译:Google大表(BigTable)
  9. 看了msn的站点有感
  10. advanced search at idiscover