白书P61 - 点集配对问题
白书P61 - 点集配对问题
状压DP
#include <iostream> #include <cstdio> #include <cstring> using namespace std; #define INF 0x3f3f3f3fstruct Point {double x,y,z; }p[20+2];int n; double dp[(1<<20)+10]; //dp[j]表示j对应状态(0为未配对,1为配对了)的最小距离和double dist(int i,int j) {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)+(p[i].z-p[j].z)*(p[i].z-p[j].z)); }void solve() {int i,j,k,MAX=1<<n;for(i=0;i<MAX;i++){dp[i]=1e10;}dp[0]=0;for(j=0;j<MAX;j++){for(i=0;i<n;i++){if(j&(1<<i)) break;}for(k=i+1;k<n;k++){if(j&(1<<k){dp[j]=min(dp[j],dp[(j&(~(1<<i)))&(~(1<<k))]+dist(i,k));}}}printf("%lf\n",dp[MAX-1]); } int main() {while(scanf("%d",&n)!=EOF){for(int i=0;i<n;i++){scanf("%lf%lf%lf",&p[i].x,&p[i].y,&p[i].z);}solve();}return 0; }
转载于:https://www.cnblogs.com/hate13/p/4105711.html
白书P61 - 点集配对问题相关推荐
- LRJ白书图论 11324 - The Largest Clique uva
/*题意:给一张有向图,求这样的一个点集,使得集合中的点u,v,u->v,or v->u,or,u<->v.对图缩点,构造一张DAG.在DAG上作dp最长路.点权为每个强连通分 ...
- 倒水问题(Fill,UVA 10603) lrj白书 p202
看着lrj的代码自己敲了一遍,还没调试成功.... 有时间再进行完善 /*状态start到各个状态u1,u2,u3.....的倒水量分别为u1.dist,u2.dist,u3.dist....*//* ...
- 【算法学习笔记】03.白书练习题stat(排序入门:冒泡,桶)
原题: 输入一些学生的分数,哪个分数出现的次数最多?如果有多个并列,从小到大输出. 任务1,分数为不超过100的非负整数.(题眼.) 任务2,分数为不超过100.00的非负实数.保留两位小数(两位的处 ...
- UVA 116 Unidirectional TSP (白书dp)
http://acm.hust.edu.cn:8080/judge/problem/viewProblem.action?id=18206 1 /* 2 题目大意: 3 从第一列的任意一格出发,到子最 ...
- 黑白图像 -- 刘汝佳白书P107
输入一个n*n的黑白图像(1表示黑色,0表示白色),任务是统计其中八连块的个数.如果两个黑格子有公共边或者公共顶点,就说它们属于同一个八连块. (题意是让求连在一起的块有几个,图见书本) SamInp ...
- OpenGL红宝书正序解读(一)
OpenGL红宝书正序解读(一) 第一章:OpenGL简介 第二章:状态管理和绘制几何物体 绘图工具箱 清除窗口 指定颜色 强制完成绘图操作 坐标系统工具箱 描述点.直线.多边形 什么是点.直线.多边 ...
- (学习笔记 红书)——插入排序(1)
今天开始学习<算法设计分析与实现从入门到精通(C\C++和Java)>. 我又开了个大坑...想起来我以前挖的C++ Primer的坑还没填完呢... <算法设计分析与实现从入门到精 ...
- Millionaire-白书-概率dp
学了,记录下 你被邀请到某个电视节目中去玩下面这个游戏.一开始你有x元钱,接着进行m轮赌博,每一轮,可以将所持的任意一部分作为赌注,赌注不光可以是整数,也可以是小数,一分钱不押或全押都没有关系,每一轮 ...
- 大白书 1.3节 高效算法设计举例
大白书 1.3节 高效算法设计举例 例题 17 UVA 11462 简单题,注意那个数值的范围是100以内就可以了. #include <cstdio> #include <cstr ...
最新文章
- 芒果TV 2021 互联网人才招聘
- MySQL5.5.15_linux下mysql-5.5.15安装详细步骤
- 米线店结账程序 装饰着模式_云南大学《设计模式》实验报告2_装饰者模式.doc...
- AD18原理图到PCB流程
- Multisim软件使用详细入门教程(图文全解)
- Swing开发之JButton篇
- 金耀初教授:进化计算在人工智能领域的发展
- 【C#.NET MVC】Deft框架简介与基本使用
- 协同开发 ----以码云为例
- 手机访问电脑本地html文件
- 如何判断Map中的key或value是什么类型
- 解决DELL服务器识别不到硬盘的问题
- laradock、phpstrom、xdebug配置实现断点调试
- WebQQ 2018(一)第一次登录
- 微信公众号会替代手机APP吗?
- 《jdk8u源码分析》6.1.GetJREPath
- 立创开源丨红外手电筒遥控器(大功率)
- 安网路由器 静态IP和PPOE混用时,如果设置了路由器定时重启可能导致路由器罢工...
- ArcGIS Pro登录及离线授权
- 北斗导航试运行将可兼容GPS 2020年有望普及
热门文章
- MATLAB 基本数据类型和调用方式
- 【笔记】大数定理证明
- PHP电商的sku,tech| 关于电商系统中sku与spu的一个难题
- logo下方显示技术支持信息_艺术与实用性的结合,iQunix Spider 屏幕显示器支架评测...
- accelerated C++ 第0章
- oracle_18c新建用户用normal登陆失败
- 毕加索发布轻量化转化引擎及BIMSOP协作云平台
- ExclusiveTouch
- 二维数组中的查找问题
- ASP.NET中 分析器错误:发现不明确的匹配