当前位置: 首页 > wzjs >正文

网站建站服务的公司高端网站开发地址

网站建站服务的公司,高端网站开发地址,wordpress 模板文件,注册个人网站域名是com好还是net好什么是最小生成树? 在一给定的无向图G (V, E) 中,(u, v) 代表连接顶点 u 与顶点 v 的边,而 w(u, v) 代表此的边权重,若存在 T 为 E 的子集(即)且为无循环图,使得的 w(T) 最小,则此 …

什么是最小生成树?

        在一给定的无向图G = (V, E) 中,(u, v) 代表连接顶点 u 与顶点 v 的边,而 w(u, v) 代表此的边权重,若存在 T 为 E 的子集(即)且为无循环图,使得的 w(T) 最小,则此 T 为 G 的最小生成树。最小生成树其实是最小权重生成树的简称。(简而言之就是把一个图变成一棵树,并且树中的边权和最小)

抓概念的话下面这个人就解释的很详细

最小生成树——Prim算法(详细图解)_最小生成树prim算法-CSDN博客

 标准的Prim模板--最小生成树

const int MAXN = 1000,INF = 0x3f3f3f3f;//定义一个INF表示无穷大。
int g[MAXN][MAXN],dist[MAXN],n,m,res;
//我们用g[][]数组存储这个图,dist[]储存到集合S的距离,res保存结果。
bool book[MAXN];//用book数组记录某个点是否加入到集合S中。int main()
{cin>>n>>m;//读入这个图的点数n和边数mfor(int i = 1 ; i<= n ;i++){for(int j = 1; j <= n ;j++){g[i][j] = INF;//初始化任意两个点之间的距离为正无穷(表示这两个点之间没有边)}dist[i] = INF;//初始化所有点到集合S的距离都是正无穷}for(int i = 1; i <= m ; i++){int a,b,w;cin>>a>>b>>w;//读入a,b两个点之间的边g[a][b] = g[b][a] = w;//由于是无向边,我们对g[a][b]和g[b][a]都要赋值}prim();//调用prim函数if(res==INF)//如果res的值是正无穷,表示不能该图不能转化成一棵树,输出orzcout<<"orz";elsecout<<res;//否则就输出结果resreturn 0;
}void prim()
{dist[1] = 0;//把点1加入集合S,点1在集合S中,将它到集合的距离初始化为0book[1] = true;//表示点1已经加入到了S集合中for(int i = 2 ; i <= n ;i++)dist[i] = min(dist[i],g[1][i]);//用点1去更新dist[]for(int i = 2 ; i <= n ; i++){int temp = INF;//初始化距离int t = -1;//接下来去寻找离集合S最近的点加入到集合中,用t记录这个点的下标。for(int j = 2 ; j <= n; j++){if(!book[j]&&dist[j]<temp)//如果这个点没有加入集合S,而且这个点到集合的距离小于temp就将下标赋给t{temp = dist[j];//更新集合V到集合S的最小值t = j;//把点赋给t}}if(t==-1){res = INF ; return ;}//如果t==-1,意味着在集合V找不到边连向集合S,生成树构建失败,将res赋值正无穷表示构建失败,结束函数book[t] = true;//如果找到了这个点,就把它加入集合Sres+=dist[t];//加上这个点到集合S的距离for(int j = 2 ; j <= n ; j++)dist[j] = min(dist[j],g[t][j]);//用新加入的点更新dist[]}
}

改良版的最大生成树

注意字符串可旋转不可翻转

#include<iostream>
#include<vector>
#include<cstring>
using namespace std;
const int N = 210,M = 51;
vector<string>s(210);
int n,m;
int dist[N],ans,g[N][N],f[N][N],st[N];
int cal_lcs(string a,string b){a = " "+ a, b =" "+b;memset(f,0,sizeof f);int cnt = 0;for(int i = 1;i<=2*m;++i){for(int j = 1;j<=2*m;++j){if(a[i] == b[j]) f[i][j] = max(f[i][j],f[i-1][j-1]+1);cnt = max(cnt,f[i][j]);}}return cnt;
}
int main(){cin>>n>>m;//拆环为链,复制一遍字符串串 for(int i = 1; i <= n;++i){cin>>s[i];s[i]+=s[i];}for(int i = 1; i<= n;++i){for(int j = i;j <= n ;++j){if(i==j) g[i][j] = 0;else g[i][j] = g[j][i] = min(cal_lcs(s[i],s[j]),m);//只计算一遍g[i][j] }}//朴素版Prim算法,注意要求最大生成树,都要修改为大于号 for(int i = 1;i <= n; ++i){int t = -1;for(int j = 1;j<=n;++j){if(!st[j]&&(t==-1||dist[j]>dist[t])) t = j;}st[t] = 1;ans += dist[t];for(int j = 1;j<=n;++j){if(!st[j] && dist[j] < g[t][j]) dist[j] = g[t][j];}}cout<<ans<<endl;
}

http://www.dtcms.com/wzjs/836919.html

相关文章:

  • 临海营销型网站建设wordpress 初始化
  • 百度手游app下载seo商城
  • 网上购物网站建设规划一站式网页设计服务平台
  • 大钢模板相关信息圆柱钢模板优势是什么?企业网站建设模板和定制化有什么区别呢?人工费多少钱一平方ueditor编辑器wordpress
  • 如何给一个网站做压测怎样查找企业联系方式
  • 网站开发怎样实现上传视频教程wordpress wpscan
  • 易企营销型网站建设企业html网页上传到服务器
  • wordpress米表域名展网站优化外包价格
  • 网站建设是一项系统工程产品备案查询官网
  • 宁波网站设计制作青岛手机网站建设公司
  • 网站建设湖北软文广告经典案例
  • 宠物网站建设目标重庆观音桥网站建设
  • 给企业做网站的公司网站内容建设包括
  • 平顶山网站建设网站做常规优化
  • 织梦响应式茶叶网站模板宿迁城乡建设监督网站
  • 企业网站设计总结网络文化经营许可证怎么办
  • 西安道桥建设有限公司网站房产信息网烟台
  • 推广 网站的优秀文案城乡与住房建设厅网站首页
  • 做化工的有哪些网站wordpress类似股票行情
  • 宁波网站建设服务服务商建筑方案的网站
  • 门户网站建设工作情况汇报2014中文网站seo排名名单
  • 常州专业房产网站建设网址搜索ip地址
  • 做视频网站要用到的服务器wap手机网站
  • 类似于凡科的网站抚远网站建设
  • 张艺兴粉丝做的网站做投融资平台的网站都有哪些
  • 怎么看网站用哪个系统做的西安旅游景点排名前十名
  • 个人如何做seo推广深圳网站seo哪家快
  • 公司网站制作需要什么步骤网推拉新怎么做
  • 怎样提高网站速度加强
  • 什么网站做招聘效果好17网站一起做网店后台