E - Water Distribution
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相关推荐
- 北京大学计算机学院周磊,马秀莉-北京大学信息科学技术学院
教育背景 2003 北京大学计算机科学技术系 博士 主要研究领域 数据库.数据挖掘.面向大规模实时监测中时空数据的分析和挖掘.面向多维数据的分析和挖掘.基于生物网络的挖掘 代表性学术论著 Xiuli ...
- 论文笔记--InterFusion
作者提出了一种无监督的方法(InterFusion)针对学习MTS数据中不同指标间的依赖和时间顺序上的依赖性进行建模.核心思想是通过两个随机潜变量,结合变分自编码机(VAE)对多维时间序列数据中的正确 ...
- 使用GNN求解组合优化问题
文章目录 1 论文内容 1.1 先验知识 1.2 论文方法 1.2.1 大致原理 1.2.2 源码关键实现 1.3 实际问题上的应用 1.3.1 风险分散 1.3.2 Interval Schedul ...
- 数据科学家和人工智能职业生涯之外软件公司之外的热门市场
The dream career is one of the major tech firms for many aspiring data scientists. 吨他梦寐以求的职业是许多有抱负的数 ...
- 环境资源与相关词汇中英文对照
大气 ATMOSPHERE 大气组成 Atmospheric composition 空气质量 Air quality 大气化学 Atmospheric chemistry 大气成分 Atmosphe ...
- 重庆大学计算机学院百度百科,朱晓红(重庆大学计算机学院副教授)_百度百科...
朱晓红 (重庆大学计算机学院副教授) 语音 编辑 锁定 讨论 上传视频 朱晓红,女,工学博士,博士后,重庆大学计算机学院副教授.硕士生导师.研究领域包括:数据挖掘.深度学习.机器学习.主研科技部国家科 ...
- 基于逆向工程的内存真值检查来保卫网络物理系统
基于逆向工程的内存真值检查来保卫网络物理系统 原文 Defending Cyber-physical Systems through Reverse Engineering Based Memory ...
- 单目标应用:足球联赛竞争算法(Soccer league competition algorithm,SLC)求解多仓库多旅行商问题MD-MTSP(可更改旅行商个数及起点)
一.足球联赛竞争算法 足球联赛竞争算法(Soccer league competition algorithm,SLC)由Naser Moosavian和Babak Kasaee Roodsari于2 ...
- 颓废的人怎样振奋精神_5个令人振奋的行业,从事数据科学家在科技行业以外的工作...
颓废的人怎样振奋精神 重点 (Top highlight) For many aspiring data scientists, the dream job is in one of the glob ...
最新文章
- 服务器双系统切换快捷键,服务器双系统同时开
- RedHat Enterprise Linux 5 安装GCC过程
- Base64编码运用与基本原理
- AsyncTask的用法
- Shank的大步小步算法(Shank‘s Baby-Step-Giant-Step Algorithm)
- 腾讯安全发布十大产业互联网安全议题:聚焦5G、数据加密等
- java程序设计基础(第3版)实验指导_清华大学出版社-图书详情-《Java程序设计基础(第5版)实验指导与习题解答》...
- 抑制过拟合的方法之权值衰减
- 我公司有个统计学的985应届(硕士)从事数据分析岗位
- 一个简单的基于 DirectShow 的播放器 1(封装类)
- NYOJ277 - 车牌号
- android开启前台服务_Android 知识点必知之ANR与OOM
- 项目管理:RASCI模型
- php screw.so,php screw加密
- 实时报价查询系统C++编程实现(阿里面试题改编)
- MySQL 系列(三)你不知道的 视图、触发器、存储过程、函数、事务、索引、语句
- f(f(x))=-x, 纯数学理解
- 关于判断力-兼谈IT评论界冥顽不化的愚蠢
- C++获取、设置鼠标坐标并移动鼠标
- 男人不能没钱女人不能没爱