题目大意:给你n+1个点,求从0点出发,经过每一个点,最后回到0点时的最小花费时间

解题思路:首先给你的n不是很大,我们先通过floyd求出每个点之间的距离,然后求是一个
          旅行商问题了,由于点不是很多,我们就可以用状态压缩的方法求解,首先用s表示
          当前所处的状态,即dp[s][i]表示当前状态下的终点是i,那么要知道当状态的最优解
          就需要知道他的上一个状态,枚举他的上一个状态的的中点j(注意j点应该满足的条件),
          就能求出当前状态的前一个状态ss=s^(1<<(j-1)),即可得状态转移方程
          dp[s][i]=min(dp[ss][j]+ma[j][i],dp[s][i])

代码:


#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define inf 0x3fffffff
#define N (1<<10)+5
int dp[N][15],n;
int ma[N][N];
void floyd()
{
for(int i=0;i<=n;i++)
{
for(int j=0;j<=n;j++)
{
for(int k=0;k<=n;k++)
{
ma[j][k]=min(ma[j][i]+ma[i][k],ma[j][k]);
}
}
}
}
int main()
{
while(scanf("%d",&n),n)
{
for(int i=0;i<=n;i++)
{
for(int j=0;j<=n;j++)
{
scanf("%d",&ma[i][j]);
}
}
floyd();
for(int s=0;s<(1<<n);s++)
{
for(int i=0;i<=n;i++)
{
dp[s][i]=inf;
}
}
for(int s=0;s<(1<<n);s++)
{
for(int i=1;i<=n;i++)
{
if(!((1<<(i-1))&s))continue;//此点没在s这个状态中
if(s==(1<<(i-1)))//当前状态下只有一个点(i)
{
dp[s][i]=ma[0][i];
continue;
}
for(int ii=1;ii<=n;ii++)
{
if(i==ii)continue;
if(!((1<<(ii-1))&s))continue;
int ss=(1<<(i-1))^s;//求解上一个状态(需要大家熟悉位运算)
dp[s][i]=min(dp[ss][ii]+ma[ii][i],dp[s][i]);
}
}
}
int ans=inf;
for(int i=1;i<=n;i++)
{
ans=min(ans,dp[(1<<n)-1][i]+ma[i][0]);
}
printf("%d\n",ans);
}
return 0;
}

poj3311Hie with the Pie相关推荐

  1. android 9 pie公司,谷歌Android 9 Pie,真正的安卓派

    IT之家8月7日消息 今天谷歌正式宣布了Android 9 Pie正式版系统,此前的Android P终于定名为Android Pie,该更新首先面向谷歌Pixel设备和Essential Phone ...

  2. PIE SDK打开静止卫星数据

    1. 功能简介 静止卫星是位于地球赤道上空约3.58万km处,与地面始终保持相对静止的卫星,静止卫星的特点是覆盖区域广,具有很强的机动灵活性,能够对特定区域进行分钟级高重复观测,可快速监测灾害目标的动 ...

  3. 小米8 SE和小米9 SE 开源 Android 9 Pie 内核代码

    开发四年只会写业务代码,分布式高并发都不会还做程序员?   近日,小米在 GitHub 开源了小米8 SE和小米9 SE的内核源码(https://github.com/MiCode/Xiaomi_K ...

  4. Android Pie提供了自适应供电、神经网络API 1.1等新特性

    Google发布了Android Oreo的后继版本Android Pie.Android Pie提供了"刘海"屏显示支持(Display cutout).神经网络API 1.1. ...

  5. Cytoscape制作带bar图和pie图节点的网络图

    采用cytoscape制作带bar图和pie图节点的网络图 作者:中科院微生物所 陈亮博士 本教程旨在告诉大家如何使用cytoscape根据Node信息表格制作带有barplot信息节点的网络图.以安 ...

  6. python使用matplotlib可视化饼图(pie plot)、可视化嵌套的环形饼图(Nested circular pie chart)

    python使用matplotlib可视化饼图(pie plot).可视化嵌套的环形饼图(Nested circular pie chart) 目录 python使用matplotlib

  7. R语言使用pie函数可视化饼图(pie chart)、为饼图添加百分比信息、使用plotrix包可视化3D饼图、使用plotrix包可视化扇形饼图

    R语言使用pie函数可视化饼图(pie chart).为饼图添加百分比信息.使用plotrix包可视化3D饼图.使用plotrix包可视化扇形饼图 目录

  8. R语言可视化包ggplot2绘制饼图(pie chart)实战

    R语言可视化包ggplot2绘制饼图(pie chart)实战 目录 R语言可视化包ggplot2绘制饼图(pie chart)实战 #ggplot2绘制一个基本饼图

  9. R单变量可视化(Histograms、 Index Plots、Time-Series Plots、Pie Charts)

    R单变量可视化(Histograms. Index Plots.Time-Series Plots.Pie Charts) 目录 R单变量可视化(Histograms. Index Plots.Tim ...

  10. PIE SDK与IDL算法结合说明文档

    1.功能简介 IDL是一门简单易用的科学计算和可视化语言,包含大量的图形图像处理函数,尤其是同ENVI结合集成了该软件的大量功能,因此被广泛用于遥感.地信领域. 本示例程序实现了IDL算法与PIESD ...

最新文章

  1. 函数对象、 函数对象与容器、函数对象与算法
  2. 宝塔ssl验证域名失败_申请一年期限的AlphaSSL泛域名证书 – 安装第三方证书
  3. RecyclerView的使用和样式
  4. [鸟哥linux视频教程整理]04_02_Linux 权限及权限管理
  5. oracle 转成 mysql_oracle转mysql总结(转)
  6. 卷积神经网络-感受野的定义
  7. 不做单元测试的6大借口
  8. React Native 仿天猫物流跟踪时间轴
  9. 用Java实现 通过两个栈实现一个队列
  10. 简析新型传感器的通信方式——SENT 信号
  11. 【开源工程】VirtualDub
  12. matlab上机作业,matlab上机作业(数字信号处理)
  13. python上的包嗅探
  14. 《分布式虚拟现实系统(DVR)》(Yanlz+Unity+SteamVR+分布式+DVR+人工智能+边缘计算+人机交互+云游戏+框架编程+立钻哥哥+)
  15. QQ音乐PC端保存歌手写真的方法
  16. 23位子网掩码是多少_23位子网掩码 网关计算
  17. android 原生请求权限代码
  18. 英特服务器的spec整数性能,未来四核心处理器SPEC性能展望
  19. 让我来发代数几何参考书
  20. SpringMVC基础学习之Restful风格的简单使用

热门文章

  1. 这1000道JAVA面试题,刷完50%妥妥的也能上岸
  2. 之前发的内退帖子找不到了,勿来,应届生入职俩月已被劝退
  3. 如何在Java程序中读写系统剪切板的数据
  4. 【Python】实训9:家用热水器用户行为分析与事件识别(所谓的神经网络,BP)
  5. 基于OpenCV的巡线小车多赛道识别
  6. 项目实训----Unity多人游戏开发----第二篇
  7. 基于PyTorch的生成对抗网络进阶(2)——利用PyTorch和GAN实现TripleGAN对手写数字生成和分类
  8. spice-gtk键盘灯的控制
  9. 121Echarts - 关系图(Les Miserables)
  10. 早期创业,应该充分利用互联网产品和服务(从”皇包车”看一家全球中文车导服务平台如何选用ToB产品)...