hrbustoj 2130 一笔画(状态压缩)
基础状态压缩 转移方程为
dp[j][i] = min(dp[j][i],dp[k][i^(1<<j)] + dis[k][j]);
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
double dp[][<<];
double x[],y[];
double dis[][];
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n;
scanf("%d",&n);
for(int i = ;i < n;i++)
scanf("%lf%lf",&x[i],&y[i]);
for(int i = ;i < n;i++)
for(int j = ;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 = ;i < n;i++)
{
dp[i][] = ;
for(int j = ;j < (<<n);j++)
dp[i][j] = ;
}
for(int i = ;i < n;i++)
dp[i][<<i] = ;
for(int i = ;i < (<<n);i++)
{
for(int j = ;j < n;j++)
{
for(int k = ;k < n;k++)
{
if( (<<j)&i && (<<k)&i && j != k)
dp[j][i] = min(dp[j][i],dp[k][i^(<<j)] + dis[k][j]);
}
}
}
double Min = 99999999.0;
for(int i = ;i < n;i++)
{
if(dp[i][(<<n) -] < Min)
Min = dp[i][(<<n)-];
}
printf("%.2lf\n",Min);
}
return ;
}
hrbustoj 2130 一笔画(状态压缩)的更多相关文章
- POJ 3254. Corn Fields 状态压缩DP (入门级)
Corn Fields Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 9806 Accepted: 5185 Descr ...
- HDU 3605:Escape(最大流+状态压缩)
http://acm.hdu.edu.cn/showproblem.php?pid=3605 题意:有n个人要去到m个星球上,这n个人每个人对m个星球有一个选择,即愿不愿意去,"Y" ...
- [HDU 4336] Card Collector (状态压缩概率dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4336 题目大意:有n种卡片,需要吃零食收集,打开零食,出现第i种卡片的概率是p[i],也有可能不出现卡 ...
- HDU 4336 Card Collector (期望DP+状态压缩 或者 状态压缩+容斥)
题意:有N(1<=N<=20)张卡片,每包中含有这些卡片的概率,每包至多一张卡片,可能没有卡片.求需要买多少包才能拿到所以的N张卡片,求次数的期望. 析:期望DP,是很容易看出来的,然后由 ...
- codeforces B - Preparing Olympiad(dfs或者状态压缩枚举)
B. Preparing Olympiad You have n problems. You have estimated the difficulty of the i-th one as inte ...
- NOIP2005过河[DP 状态压缩]
题目描述 在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧.在桥上有一些石子,青蛙很讨厌踩在这些石子上.由于桥的长度和青蛙一次跳过的距离都是正整数,我们可以把独木桥上青蛙可能到达的点看成数 ...
- vijos1426兴奋剂检查(多维费用的背包问题+状态压缩+hash)
背景 北京奥运会开幕了,这是中国人的骄傲和自豪,中国健儿在运动场上已经创造了一个又一个辉煌,super pig也不例外……………… 描述 虽然兴奋剂是奥运会及其他重要比赛的禁药,是禁止服用的.但是运动 ...
- hoj2662 状态压缩dp
Pieces Assignment My Tags (Edit) Source : zhouguyue Time limit : 1 sec Memory limit : 64 M S ...
- poj3254 状态压缩dp
题意:给出一个n行m列的草地,1表示肥沃,0表示贫瘠,现在要把一些牛放在肥沃的草地上,但是要求所有牛不能相邻,问你有多少种放法. 分析:假如我们知道第 i-1 行的所有的可以放的情况,那么对于 ...
随机推荐
- TD8.0迁移到QC9.2,自动迁移失败,手动迁移
源机器A:TD8.0+SQLServer2000目标机器B:QC9.2+SQLServer2000 一:自动迁移,1.在A在A上安装QC迁移工具,然后在B中点击TOOLS>>Migrati ...
- Storm官方文档翻译之在生产环境集群中运行Topology
在进群生产环境下运行Topology和在本地模式下运行非常相似.下面是步骤: 1.定义Topology(如果使用Java开发语言,则使用TopologyBuilder来创建) 2.使用StormSub ...
- HDU4310:Hero
Problem Description When playing DotA with god-like rivals and pig-like team members, you have to fa ...
- CentOS7 PostgreSQL 安装
PostgreSQL安装 安装使用yum安装 (找源 http://yum.postgresql.org/) yum install https://download.postgresql.org/p ...
- mysql 排序后获得某行的位置
假设有test表,下图为表机构和数据,score表示积分.现在要查询积分排名为第几的id?? 查询语句 select id,score,(@rowno:=@rowno+1) as rowno from ...
- linux--每日一个命令
编写shell脚本 hello.sh #!/bin/bash # The first program echo -e "\e[1;34m Hello world ! \e[0m" ...
- shell 变量说明
变量说明 $$Shell本身的PID(ProcessID)$!Shell最后运行的后台Process的PID$?最后运行的命令的结束代码(返回值)$-使用Set命令设定的Flag一览$*所有参数列表. ...
- android版本 busybox
http://www.busybox.net/downloads/binaries/1.21.1/ 根据不同的平台选择busybox已经编译好的
- Python 线程,进程
Threading用于提供线程相关的操作,线程是应用程序中工作的最小单元 线程不能实现多并发 只能实现伪并发 每次工作 只能是一个线程完成 由于python解释器 原生是c 原生线程 底层都会有一把 ...
- ubuntu 14.04安装postgresql最新版本
官网:https://www.postgresql.org/download/linux/ubuntu/ ----------------------------------------------- ...