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

做网站网站建设专业公司哪家好怎么简单制作一个网页

做网站网站建设专业公司哪家好,怎么简单制作一个网页,做旅游网站平台合作入驻,在家做兼职的网站最小生成树问题是指给定一个带权的无向图,删除一些边使得这个无向图变成一棵树,并且权值之和最小。 解决此类问题的方法主要有两种:Prim算法,Kruskal算法 Prim 算法 从一个点开始,逐步扩展,每次选择权值…

最小生成树问题是指给定一个带权的无向图,删除一些边使得这个无向图变成一棵树,并且权值之和最小。

解决此类问题的方法主要有两种:Prim算法,Kruskal算法

Prim 算法

从一个点开始,逐步扩展,每次选择权值最小的相连的边,保证不出环,直到顶点总数等于图中所有顶点个数,组成最小生成树

例题 最小生成树

P3366 【模板】最小生成树

#include<bits/stdc++.h>
using namespace std;
int fa[500005],n,m,ans,cnt;
int vis[100005],dis[100005],g[5005][5005];
void prim(){memset(vis,0,sizeof vis);memset(dis,0x3f,sizeof dis);dis[1]=0;for(int i=1;i<=n;i++){int t=-1;for(int j=1;j<=n;j++){if(!vis[j]&&(t==-1||dis[j]<dis[t])){t=j;}}if(dis[t]==0x3f3f3f3f){printf("orz\n");return ;}vis[t]=1;ans+=dis[t];for(int j=1;j<=n;j++){if(dis[j]>g[t][j]&&!vis[j]){dis[j]=g[t][j];}}}printf("%d\n",ans);
}
int main(){scanf("%d%d",&n,&m);memset(g,0x3f,sizeof g);for(int i=1;i<=m;i++){ int xx,yy,zz;scanf("%d%d%d",&xx,&yy,&zz);if(g[xx][yy]==0x3f3f3f3f){g[xx][yy]=zz;g[yy][xx]=zz;}else{g[xx][yy]=min(zz,g[xx][yy]);g[yy][xx]=min(zz,g[yy][xx]);}}prim();return 0;
}

Kruskal 算法

把所有边都从小到大排好序,从小到大逐个放入树,保证不能出环,直至树中结点总个数等于原无向图顶点数

例题 最小生成树

P3366 【模板】最小生成树

#include<bits/stdc++.h>
using namespace std;
int fa[100005],n,m,ans,cnt;
struct node{int x,y,z;
}a[200005];
int Find(int x){if(fa[x]==x){return x;}return fa[x]=Find(fa[x]);
}
bool cmp(node aa,node bb){return aa.z<bb.z;
}
int kruskal(){sort(a+1,a+m+1,cmp);for(int i=1;i<=m;i++){int xx=Find(a[i].x);int yy=Find(a[i].y);if(xx==yy){continue;}ans+=a[i].z;fa[yy]=xx;if(++cnt==n-1){return ans;}}return -1;
}
void Init(){for(int i=1;i<=n;i++){fa[i]=i;}
}
int main(){scanf("%d%d",&n,&m);Init();for(int i=1;i<=m;i++){scanf("%d%d%d",&a[i].x,&a[i].y,&a[i].z);}if(kruskal()==-1){printf("orz\n");return 0;}printf("%d\n",ans);return 0;
}

Build

给定几个城镇的坐标,要让它们联通起来,在它们间

#include<bits/stdc++.h>
using namespace std;
long long fa[500005],n,ans,cnt;
struct node2{long long x,y,z;
}b[500005];
struct node{long long x,y,z;
}a[500005];
long long Find(long long x){if(fa[x]==x){return x;}return fa[x]=Find(fa[x]);
}
bool cmp1(node2 aa,node2 bb){return aa.x<bb.x;
}
bool cmp2(node2 aa,node2 bb){return aa.y<bb.y;
}
bool cmp(node aa,node bb){return aa.z<bb.z;
}
void kruskal(){sort(a+1,a+2*n+1,cmp);for(int i=1;i<=2*n;i++){long long x=a[i].x;long long y=a[i].y;long long xx=Find(x);long long yy=Find(y);if(xx==yy){continue;}fa[xx]=yy;ans+=a[i].z;cnt++;if(cnt==n-1){return ;}}
}
void Init(){for(int i=1;i<=n;i++){fa[i]=i;}
}
int main(){scanf("%lld",&n);Init();for(int i=1;i<=n;i++){ scanf("%lld%lld",&b[i].x,&b[i].y);b[i].z=i;}sort(b+1,b+n+1,cmp1);for(int i=1;i<n;i++){a[i].x=b[i].z;a[i].y=b[i+1].z;a[i].z=b[i+1].x-b[i].x;}sort(b+1,b+n+1,cmp2);for(int i=1;i<n;i++){a[i+n].x=b[i].z;a[i+n].y=b[i+1].z;a[i+n].z=b[i+1].y-b[i].y;}kruskal();printf("%lld\n",ans);return 0;
}
http://www.hkea.cn/news/61686/

相关文章:

  • 菏泽网站获客网站建设公司中国站长网入口
  • 黄冈网站建设推荐seo查询排名软件
  • 自己怎么做百度网站广州seo网站公司
  • 京东企业的电子网站建设百度seo教程网
  • 弥勒网站设计公司share群组链接分享
  • 网站建设栏目管理百度推广搜索排名
  • 企业管理类的网站全球搜是什么公司
  • 网站开发自我介绍seo报告
  • 网站应用软件设计海口seo网络公司
  • 武汉站建设深圳网站开发制作
  • 网站建设的平台分析北京seo技术
  • 手表价格网站百度推广天津总代理
  • 如何将域名和网站绑定排名seo怎么样
  • 旅游网站推广方案色盲测试图
  • 现在开发个网站多少钱安全优化大师
  • 网站开发工程师工资多少百度统计工具
  • 征信报告优化大师好用吗
  • 一个ip地址做多个网站网络营销公司是做什么的
  • 赤峰网站建设公司旅行网站排名
  • seo网站优化工具软件拉新推广平台
  • 政府网站设计方案无锡网站制作优化
  • 社交网站盈利吗如何在各种网站投放广告
  • 建设工程合同民法典东莞快速优化排名
  • 泗县口碑营销互联网营销推荐咨询青岛seo计费
  • 做电影网站用什么服务器中文域名注册官网入口
  • 做网站那里好win10系统优化工具
  • 做外贸上哪些网站找客户口碑营销的概念是什么
  • 外贸建站magento百度地图推广
  • 做网站和管理系统全网热度指数
  • 网站的压力测试怎么做网络营销的目的是什么