#define N 55//所有点的个数
#define K 10//SteinerTree 最大顶点数,必须精确
#define INF 10000000 //SteinerTree 邻接矩阵模板。(稠密图)时间复杂度 O(N*2^K*(2^K+N))
int dp[(<<K)+][N];
int STV[N]; int SteinerTreeDP(int mat[N][N],int maxid,int *sameset,int size)
{
//mat为表示距离的邻接矩阵
//所有的标点从1到maxid
//SteinerTree 所必须的点集为 sameset[0] 到 sameset[size-1]
//函数放回最小Steiner Tree的值 for(int i=;i<(<<size);i++)
for(int j=;j<=maxid;j++)
dp[i][j]=INF; for (int i=; i<size; i++) {
dp[(<<i)][sameset[i]]=;
}
for (int i=;i<(<<size);i++)
{
//step 1
for(int kk=;kk<=maxid;kk++)
{
STV[kk]=;
for(int j = (i-)&i ; j ;j = (j-)&i)
{
dp[i][kk] = min(dp[i][kk],dp[j][kk]+dp[(~j)&i][kk]);
}
}
//step 2
int kk,stmin=INF,stminid=;
for (int j = ; stmin = INF, j < maxid; j++)
{
for (kk = ; kk <= maxid; kk++)
if (dp[i][kk] <= stmin && !STV[kk])
stmin = dp[i][stminid = kk]; for (STV[stminid]=,kk = ; kk <= maxid; kk++)
if(STV[kk]==) dp[i][kk] = min(dp[i][kk], dp[i][stminid] + mat[stminid][kk]);
}
} int tmin=INF;
for(int j=;j<=maxid;j++)
tmin=min(tmin,dp[(<<size)-][j]);
return tmin;
}

SteinerTree模板的更多相关文章

  1. Jade模板引擎让你飞

    写在前面:现在jade改名成pug了 一.安装 npm install jade 二.基本使用 1.简单使用 p hello jade! 渲染后: <p>hello jade!</p ...

  2. ABP入门系列(2)——通过模板创建MAP版本项目

    一.从官网创建模板项目 进入官网下载模板项目 依次按下图选择: 输入验证码开始下载 下载提示: 二.启动项目 使用VS2015打开项目,还原Nuget包: 设置以Web结尾的项目,设置为启动项目: 打 ...

  3. CMS模板应用调研问卷

    截止目前,已经有数十家网站与我们合作,进行了MIP化改造,在搜索结果页也能看到"闪电标"的出现.除了改造方面的问题,MIP项目组被问到最多的就是:我用了wordpress,我用了织 ...

  4. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  5. 【原创分享·微信支付】C# MVC 微信支付之微信模板消息推送

    微信支付之微信模板消息推送                    今天我要跟大家分享的是“模板消息”的推送,这玩意呢,你说用途嘛,那还是真真的牛逼呐.原因在哪?就是因为它是依赖微信生存的呀,所以他能不 ...

  6. OpenCV模板匹配算法详解

    1 理论介绍 模板匹配是在一幅图像中寻找一个特定目标的方法之一,这种方法的原理非常简单,遍历图像中的每一个可能的位置,比较各处与模板是否“相似”,当相似度足够高时,就认为找到了我们的目标.OpenCV ...

  7. 前端MVC学习总结(一)——MVC概要与angular概要、模板与数据绑定

    一.前端MVC概要 1.1.库与框架的区别 框架是一个软件的半成品,在全局范围内给了大的约束.库是工具,在单点上给我们提供功能.框架是依赖库的.AngularJS是框架而jQuery则是库. 1.2. ...

  8. ThinkPHP+Smarty模板中截取包含中英文混合的字符串乱码的解决方案

    好几天没写博客了,其实有好多需要总结的,因为最近一直在忙着做项目,但是困惑了几天的Smarty模板中截取包含中英文混合的字符串乱码的问题,终于解决了,所以记录下来,需要的朋友看一下: 出现乱码的原因: ...

  9. ThinkPHP 模板substr的截取字符串函数

    ThinkPHP 模板substr的截取字符串函数在Common/function.php加上以下代码 /** ** 截取中文字符串 **/ function msubstr($str, $start ...

随机推荐

  1. ITFriend站点内測公測感悟

    4月份做出站点Demo.就開始让用户使用了. 最初的黄色版界面.被吐槽得比較厉害. 关于界面.每一个人都有自己的看法,仅仅是喜欢和不喜欢的人比例不一样. 后来.花3400元请了个设计师,设计了一套界面 ...

  2. HTML5 Canvas 绘制二十四字真言钟表

    代码: <!DOCTYPE html> <html lang="utf-8"> <meta http-equiv="Content-Type ...

  3. 关于public、private、protected、internal

    1.private修饰符 private修饰符用于设置类或类成员的訪问权限仅为所属类的内部, private也被称为私有修饰符.某些时候须要訪问私有类成员时,可通过get和set訪问器读取或改动. 2 ...

  4. Splunk 会议回想: 大数据的关键是机器学习

    作者 Jonathan Allen ,译者 张晓鹏 Splunk的用户大会已经接近尾声.三天时间的会议里,共进行了160多个主题研讨.涵盖了从安全.运营到商业智能.甚至包含物联网,会议中一遍又一遍出现 ...

  5. axios 和 vue-axios

    1.main.js 全局引入 /** * 引入 axios 数据请求方式 * axios 和 VueAxios 必须同时注入 */ import axios from 'axios' import V ...

  6. grid 布局 设置行列间距

    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...

  7. Qt Creator项目中使用qss

    近期学习qt .使用的编译器是qt creator ,学习过程中遇到的题就是 怎样将程序中将要用到的.qss 文件静态编译到.exe程序中,而不是在程序执行时动态加载.动态加载的最大问题在于一旦.qs ...

  8. 工作总结 input 限制字数 textarea限制字数

    最大能输入50个字 复制粘贴也不行 <textarea maxlength="50"  class=" smallarea" cols="60& ...

  9. JavaScript的特殊函数

    1.匿名函数 onclick=function(){}就是匿名函数. 2.匿名函数的回调函数 <script> <span style="white-space:pre&q ...

  10. 如何高效利用github提升自己

    作为开源代码库以及版本控制系统,Github拥有超过900万开发者用户,是开发者打开程序开源大门的一扇窗口,也是开发者快速提升自己的一个重要途径.本文将从两个方面介绍github的使用方式. 和逛微博 ...