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

公司网站建设有用吗新软件推广

公司网站建设有用吗,新软件推广,网站建设seo基本要求,wordpress 后台制作一、最小生成树 1.1Prim算法 朴素版Prim 一般用于稠密图 算法流程: 集合表示当前已经在连通块的点 1.初始化距离&#xff0c;把所有距离都初始化为正无穷 2.n次迭代,找到集合外距离最小的点 ->t 3.用t来更新其它点到集合的距离 #include<iostream> #include&…

一、最小生成树

1.1Prim算法

朴素版Prim

一般用于稠密图

算法流程:

集合表示当前已经在连通块的点

1.初始化距离,把所有距离都初始化为正无穷

2.n次迭代,找到集合外距离最小的点 ->t

3.用t来更新其它点到集合的距离

#include<iostream>
#include<cstring>
#include<algorithm>using namespace std;const int N = 510,INF = 0x3f3f3f3f;int n,m;
int g[N][N];
int dist[N];
bool st[N];int prim()
{memset(dsit,0x3f,sizeof dsit);int res = 0;for(int i = 0;i < n;i ++){int t = -1;for(int j = 1;j <= n;j ++){if(! st[j] && (t == -1 || dist[t] > dist[j]))t = j;}if(i && dist[t] == INF) return INF;for(int j = 1;j <=n;j ++) dist[j] = min(dist[j],g[t][j]);st[t] = true;}return res;
}
int main()
{scanf("%d%d",&n,&m);memset(g,0x3f,sizeof g);while(m --){int a,b,c;scanf("%d%d%d",&a,&b,&c);g[a][b] = g[b][a] = min(g[a][b],c);}int t = prim();if(t == INF) puts("impossible");else printf("%d\n",t);return 0;
}

1.2Kruskal算法

一般用于稀疏图

算法流程:

1.将所有边按照权重从小到大排序

2.枚举每一条边(a,b),权重为c

如果(a,b)不连通,则将这条边加入集合中

#include<iostream>
#include<algorithm>using namespace std;const int N = 100010;int n,m;
//并查集的集合
int p[N];struct Edge
{int a,b,w;bool operator < (const Edge &W)const{return w < W.w;}
}edges[N];int find(int x)
{if(p[x] != x) p[x] = find(p[x]);return p[x];
}
int main()
{scanf("%d%d",&n,&m);for(int i = 0;i < m;i ++){int a,b,w;scanf("%d%d%d",&a,&b,&w);edges[i] = {a,b,w};}sort(edges,edges + m);for(int i = 1;i <= n;i ++) p[i] = i;int res = 0,cnt = 0;for(int i = 0; i < m; i ++){//从小到大枚举所有边int a = edges[i].a,b = edges[i].b,w = edges[i].w;//知道a与b的祖宗节点a = find(a),b = find(b);//判断a与b是否连通if(a != b){//集合合并p[a] = b;res += w;cnt ++;}}if (cnt < n - 1) puts("impossible");else printf("%d\n",res);return 0;
}

二、二分图

二分图当且仅当图中不含奇数环

2.1染色法

#include<iostream>
#include<cstring>
#include<algorithm>using namespace std;const int N = 100010,M = 200010;int n,m;
int h[N],e[M],ne[M],idx;
int color[N];void add(int a,int b)
{e[idx] = b,ne[idx] = h[a],h[a] = idx ++;
}bool dfs(int u,int c)
{//当前点的颜色是ccolor[u] = c;for(int i = h[u];i != -1;i = ne[i]){int j = e[i];if(!color[j]){if(!dfs(j,3 - c)) return false;}else if (color[j] == c) return false;}return true;
}int main()
{scanf("%d%d",&n,&m);memset(h,-1,sizeof h);while(m --){int a,b;scanf("%d%d",&a,&b);add(a,b),add(b,a);}bool flag = true;for(int i = 1;i <=n;i ++){if(!color[i]){if(!dfs(i,1)){flag = false;break;}}}if(flag) puts("Yes");else puts("No");return 0;
}

2.2匈牙利算法

#include<iostream>
#include<algorithm>
#include<cstring>using namespace std;const int N = 510,M = 100010;int n1,n2,m;
int h[N],e[M],ne[M],idx;
int match[N];
bool st[N];void add(int a,int b)
{e[idx] = b,ne[idx] = h[a],h[a] = idx ++;
}
bool find(int x)
{for(int i = h[x];i != -1;i = ne[i]){int j = e[i];if(!st[j]){st[j] = true;if(match[j] == 0 || find(match[j])){match[j] = x;return true;}}}return false;
}
int main()
{scanf("%d%d%d",&n1,&n2,&m);memset(h,-1,sizeof h);while(m --){int a,b;scanf("%d%d",&a,&b);add(a,b);}int res = 0;for(int i = 0;i <= n1;i ++){memset(st,false,sizeof st);if(find(i)) res ++;}printf("%d\n",res);return 0;
}
http://www.tj-hxxt.cn/news/90154.html

相关文章:

  • 网站程序找人做还是自己做seo网站诊断方案
  • 厦门网红打卡景点itmc平台seo优化关键词个数
  • 哪里有网站制作公司日即时热榜
  • 农村电商网站建设分类网店seo关键词
  • 太仓网站设计早晨设计企业营销策划方案
  • 本土建站工作室最近三天的新闻热点
  • 做网站设计需要多久色盲测试卡
  • 岳阳有哪几家做网站的进行seo网站建设
  • 做网站的项目策划书成人电脑基础培训班
  • asp.net获取网站虚拟目录湖南正规关键词优化
  • 别墅效果图制作seo权重查询
  • 专业网站建设推广郑州网站建设公司哪家好
  • 做电影网站靠谱吗搜索引擎优化的对比
  • 上海做网站汉狮网络中国新闻最新消息
  • 营销型网站建设的概念微信软文范例100字
  • 用织梦系统做网站产权seo短视频入口引流
  • 郑州建网站需要多少钱武汉大学人民医院怎么样
  • 深圳网站建设开发哪家好电商运营主要工作内容
  • ps怎么做华为网站界面抖音推广引流平台
  • 怎样做网站地图点击器
  • 怎么做可以支付的网站正规代运营公司排名
  • 网站结构组成部分有那些seo页面如何优化
  • 服务器搭建云电脑嘉兴优化公司
  • 怎么查询网站是否收录西安seo管理
  • 住房和城乡建设部网站安广东省没广告的视频播放器app
  • 文化书院网站建设方案国内十大搜索引擎网站
  • 网上招聘网站开发报告苏州网站建设制作公司
  • 做兼职去什么网站编程培训机构
  • 如何在修改wordpress百度关键字优化价格
  • 武汉官方网站建设seo白帽优化