白书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 - 点集配对问题相关推荐

  1. LRJ白书图论 11324 - The Largest Clique uva

    /*题意:给一张有向图,求这样的一个点集,使得集合中的点u,v,u->v,or v->u,or,u<->v.对图缩点,构造一张DAG.在DAG上作dp最长路.点权为每个强连通分 ...

  2. 倒水问题(Fill,UVA 10603) lrj白书 p202

    看着lrj的代码自己敲了一遍,还没调试成功.... 有时间再进行完善 /*状态start到各个状态u1,u2,u3.....的倒水量分别为u1.dist,u2.dist,u3.dist....*//* ...

  3. 【算法学习笔记】03.白书练习题stat(排序入门:冒泡,桶)

    原题: 输入一些学生的分数,哪个分数出现的次数最多?如果有多个并列,从小到大输出. 任务1,分数为不超过100的非负整数.(题眼.) 任务2,分数为不超过100.00的非负实数.保留两位小数(两位的处 ...

  4. UVA 116 Unidirectional TSP (白书dp)

    http://acm.hust.edu.cn:8080/judge/problem/viewProblem.action?id=18206 1 /* 2 题目大意: 3 从第一列的任意一格出发,到子最 ...

  5. 黑白图像 -- 刘汝佳白书P107

    输入一个n*n的黑白图像(1表示黑色,0表示白色),任务是统计其中八连块的个数.如果两个黑格子有公共边或者公共顶点,就说它们属于同一个八连块. (题意是让求连在一起的块有几个,图见书本) SamInp ...

  6. OpenGL红宝书正序解读(一)

    OpenGL红宝书正序解读(一) 第一章:OpenGL简介 第二章:状态管理和绘制几何物体 绘图工具箱 清除窗口 指定颜色 强制完成绘图操作 坐标系统工具箱 描述点.直线.多边形 什么是点.直线.多边 ...

  7. (学习笔记 红书)——插入排序(1)

    今天开始学习<算法设计分析与实现从入门到精通(C\C++和Java)>. 我又开了个大坑...想起来我以前挖的C++ Primer的坑还没填完呢... <算法设计分析与实现从入门到精 ...

  8. Millionaire-白书-概率dp

    学了,记录下 你被邀请到某个电视节目中去玩下面这个游戏.一开始你有x元钱,接着进行m轮赌博,每一轮,可以将所持的任意一部分作为赌注,赌注不光可以是整数,也可以是小数,一分钱不押或全押都没有关系,每一轮 ...

  9. 大白书 1.3节 高效算法设计举例

    大白书 1.3节 高效算法设计举例 例题 17 UVA 11462 简单题,注意那个数值的范围是100以内就可以了. #include <cstdio> #include <cstr ...

最新文章

  1. 芒果TV 2021 互联网人才招聘
  2. MySQL5.5.15_linux下mysql-5.5.15安装详细步骤
  3. 米线店结账程序 装饰着模式_云南大学《设计模式》实验报告2_装饰者模式.doc...
  4. AD18原理图到PCB流程
  5. Multisim软件使用详细入门教程(图文全解)
  6. Swing开发之JButton篇
  7. 金耀初教授:进化计算在人工智能领域的发展
  8. 【C#.NET MVC】Deft框架简介与基本使用
  9. 协同开发 ----以码云为例
  10. 手机访问电脑本地html文件
  11. 如何判断Map中的key或value是什么类型
  12. 解决DELL服务器识别不到硬盘的问题
  13. laradock、phpstrom、xdebug配置实现断点调试
  14. WebQQ 2018(一)第一次登录
  15. 微信公众号会替代手机APP吗?
  16. 《jdk8u源码分析》6.1.GetJREPath
  17. 立创开源丨红外手电筒遥控器(大功率)
  18. 安网路由器 静态IP和PPOE混用时,如果设置了路由器定时重启可能导致路由器罢工...
  19. ArcGIS Pro登录及离线授权
  20. 北斗导航试运行将可兼容GPS 2020年有望普及

热门文章

  1. MATLAB 基本数据类型和调用方式
  2. 【笔记】大数定理证明
  3. PHP电商的sku,tech| 关于电商系统中sku与spu的一个难题
  4. logo下方显示技术支持信息_艺术与实用性的结合,iQunix Spider 屏幕显示器支架评测...
  5. accelerated C++ 第0章
  6. oracle_18c新建用户用normal登陆失败
  7. 毕加索发布轻量化转化引擎及BIMSOP协作云平台
  8. ExclusiveTouch
  9. 二维数组中的查找问题
  10. ASP.NET中 分析器错误:发现不明确的匹配