6. 线型网络

★★☆   输入文件:linec.in   输出文件:linec.out   简单对比
时间限制:1 s   内存限制:256 MB

【问题描述】

有 N(N<=20)台 PC 放在机房内,现在要求由你选定一台 PC,用共N−1条网线从这台机器开始一台接一台地依次连接他们,最后接到哪个以及连接的顺序也是由你选定的,为了节省材料,网线都拉直。求最少需要一次性购买多长的网线。(说白了,就是找出 N 的一个排列 P1P2P3..PN 然后 P1−>P2−>P3−>...−>PN 找出 |P1P2|+|P2P3|+...+|PN−1PN| 长度的最小值)

【输入格式】

第一行 N ,下面 N 行,每行分别为机器的坐标(x,y)(x为实数−100<=x,y<=100)

【输出格式】

最小的长度,保留两位小数。

【输入样例】

3
0 0
1 1
1 -1

【输出样例】

2.83
/*
ans[sta][i]点的集合为sta,且最后一个点是i的最短路
*/
#include<cmath>
#include<cstdio>
#include<iostream>
using namespace std;
int n,num1[<<];
double x[],y[],dis[][],ans[<<][];
int main(){
//freopen("Cola.txt","r",stdin);
freopen("linec.in","r",stdin);freopen("linec.out","w",stdout);
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++){
if(i==j)continue;
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++)num1[<<i]=i+;
for(int i=;i<(<<n);i++){
if(!num1[i]){
for(int j=i;j;j-=j&-j){
ans[i][num1[j&-j]]=0x3f3f3f3f;
for(int k=i-(j&-j);k;k-=(k&-k))
if (ans[i][num1[j&-j]]>ans[i-(j&-j)][num1[k&(-k)]]+dis[num1[j&-j]][num1[k&-k]])
ans[i][num1[j&-j]]=ans[i-(j&-j)][num1[k&(-k)]]+dis[num1[j&-j]][num1[k&-k]];
}
}
}
double Ans=0x7fffffff;
for(int i=;i<=n;i++)Ans=min(Ans,ans[(<<n)-][i]);
printf("%.2lf",Ans);
}

Cogs 6. 线型网络的更多相关文章

  1. NS3网络仿真(6): 总线型网络

    快乐虾 http://blog.csdn.net/lights_joy/ 欢迎转载.但请保留作者信息 在NS3提供的第一个演示样例first.py中,模拟了一个点对点的网络,接下来的一个演示样例代码模 ...

  2. [Cogs] 线型网络

    题面 http://cogs.pro:8080/cogs/problem/problem.php?pid=6 题解 https://www.zybuluo.com/wsndy-xx/note/1135 ...

  3. cogs 线型网络(状压dp)

    /* 需要好大的空间..... 而且lowbit理解的不是很好 先放到博客里 以后慢慢研究 */ #include<iostream> #include<cstdio> #in ...

  4. 图论(网络流,分数规划):COGS 2047. [ZOJ2676]网络战争

    2047. [ZOJ2676]网络战争 ★★★   输入文件:networkwar.in   输出文件:networkwar.out   评测插件 时间限制:5 s   内存限制:32 MB [题目描 ...

  5. Cogs 750. 栅格网络(对偶图)

    栅格网络流 ★★☆ 输入文件:flowa.in 输出文件:flowa.out 简单对比 时间限制:1 s 内存限制:128 MB [问题描述] Bob 觉得一般图的最大流问题太难了,他不知道如何解决, ...

  6. CodeVS 1344 线型网络

    Sol 随机化算法+哈密顿路径. 好厉害的题...首先都会想到状压DP对吧,复杂度 \(O(n^2 2^n)\) . \(n=20\)  exm?? \(10^8\) 有一种算法就是随机化算法 再调整 ...

  7. CodeVS1344 线型网络

    题目描述 Description 有 N ( <=20 ) 台 PC 放在机房内,现在要求由你选定一台 PC,用共 N-1 条网线从这台机器开始一台接一台地依次连接他们,最后接到哪个以及连接的顺 ...

  8. 前端学HTTP之网络基础

    × 目录 [1]网络 [2]OSI [3]TCP/IP 前面的话 HTTP协议对于前端工程师是非常重要的.我们在浏览网站时,访问的每一个WEB页面都需要使用HTTP协议实现.如果不了解HTTP协议,就 ...

  9. Java基础之网络编程

    网络编程:1.网络编程概述 (1)网络模型 OSI参考模型 TCP/IP参考模型 (2)网络通讯要素 IP地址 端口号 传输协议 (3)网络通讯前提: **找到对方IP **数据要发送到指定端口.为了 ...

随机推荐

  1. Linux下重命名文件或文件夹(mv命令与rename命令)

    在Linux下重命名文件或目录,可以使用mv命令或rename命令 mv ———————————— mv命令既可以重命名,又可以移动文件或文件夹. 例子:将目录A重命名为B mv A B 例子:将/a ...

  2. MySQL丨删除一张表小常识

    在MySQL里面 ,对于删除一张表里面的所有内容有两种语句: 1.delete from table_name; 2.truncate table table_name; 解析:以上两种方式都可以删除 ...

  3. 2017-2018-1 20179203 《Linux内核原理与分析》第八周作业

    攥写人:李鹏举 学号:20179203 ( 原创作品转载请注明出处) ( 学习课程:<Linux内核分析>MOOC课程http://mooc.study.163.com/course/US ...

  4. [转]由Tencent://Message协议想到的一个解决方案

    源代码下载:http://files.cnblogs.com/phinecos/HelloWorldProtocal.rar 前天在BruceZhang的一篇博文<求助:如何在ASP页面中调用W ...

  5. 洛谷【P1080】国王游戏

    我对贪心的理解:https://www.cnblogs.com/AKMer/p/9776293.html 题目传送门:https://www.luogu.org/problemnew/show/P10 ...

  6. vs2015解决fopen、fscanf 要求替换为fopen_s、fscanf_s的办法

    在工程项目设置一下就行:项目属性 -- C/C++-- 预处理器 -- 预处理器定义,添加:_CRT_SECURE_NO_WARNINGS

  7. 微服务学习一 微服务session 管理

    集群和分布式架构中: session管理有三种方法: 1: Cookie: 将Session对象保存在Cookie,保存在浏览器端.浏览器发送请求的时候,会把整个session放在请求里一起发送到se ...

  8. VisualGDB系列4:概述-Linux程序与VS

    根据VisualGDB官网(https://visualgdb.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家指正. 本文将会阐述如何使用VisualGDB来 ...

  9. shell判断网络主机存活

    判断网络主机存活企业面试题4:写一个脚本,实现判断10.0.0.0/24网络里,当前在线用户的IP有哪些(方法有很多) #!/bin/sh#[ -f /etc/init.d/functions ] & ...

  10. MySql中的视图的概念及应用

    视图的基本概念 视图是从一个或几个基本表(或者视图)导出的表.它与基本表不同,是一个虚表. 数据库只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中.所以基本表中的数据发生变化, ...