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

做网站设置时间热门seo推广排名稳定

做网站设置时间,热门seo推广排名稳定,手机域名注册查询,网站建设详细需求说明书首先,什么是最小生成树? 他就是无向图G中的所有生成树中树枝权值总和最小的。 如何求? 我们不妨采用以下的贪心策略: Prim算法(复杂度:(nm)logm): 我们对于把上述的点看成两个集…

首先,什么是最小生成树?

他就是无向图G中的所有生成树中树枝权值总和最小的

如何求?

我们不妨采用以下的贪心策略:

Prim算法(复杂度:(n+m)logm):

我们对于把上述的点看成两个集合,一个是确定了最小生成树的点,一个还没有确定,我们只要不断把距离已经确定的集合的最短的边添加进去即可。假如我们加的距离不是最小的,那么当我们假设未确定的点已经构成了他们点的最小生成树,那么我们此时用距离最小的去添加他们肯定更优。(我们对于那先未确定的点的集合,不管用什么边去联系他们任何一个点,都不会影响他们以后的最小生成树的形状,这也是贪心当前最优解可以推出全局最优解的保证)

来道模板题:

因为传递消息,至少连n-1条边,又要距离min,相当于求最小生成树,下面是AC代码(我们可以优化一下,对于还未拿出的边,若有一个比他长的则不放入队列):

#include<bits/stdc++.h>
using namespace std;
int n,m,head[100010],a,b,v,cnt,sum;
struct node{int len,dian,next;
}edge[1000005];
void addedge(int x,int y,int v){edge[++cnt].len=v;edge[cnt].dian=y;edge[cnt].next=head[x];head[x]=cnt;
}
int dis[100010];
struct ty{int bian,name;bool operator<(const ty &a) const{return bian>a.bian;}
};
bool vis[1000001];
priority_queue<ty> q;
int prim(){q.push({0,1});while(!q.empty()){ty ck=q.top();q.pop();if(vis[ck.name]==1) continue;vis[ck.name]=1;sum+=ck.bian;for(int i=head[ck.name];i!=-1;i=edge[i].next){if(vis[edge[i].dian]==1) continue;if(dis[edge[i].dian]<=edge[i].len) continue;dis[edge[i].dian]=edge[i].len;q.push({edge[i].len,edge[i].dian});}}return sum;
}
int main(){memset(head,-1,sizeof(head));memset(vis,0,sizeof(vis));memset(dis,0x3f,sizeof(dis));cin>>n>>m;for(int i=1;i<=m;i++){scanf("%d%d%d",&a,&b,&v);addedge(a,b,v);addedge(b,a,v);}cout<<prim();
}

Kruskal算法(复杂度:mlogm):

还是采取贪心策略,只不过这次是直接选所有边下的最短边,若他们连起来还是树,就连起来,反之舍弃,用并查集维护即可。

首先,我们注意到如果每一次都可以选min的n-1条边就是最优的情况

是,在实际上,可能边会在同一个并查集中,说明这条边可以发挥构成树的作用,当时已经存在一点,他的作用是一样的,但是它的距离更小,因此更优。换句话说,我们就是在选n-1个在构建生成树的发挥不同作用的边,而之所以要放弃,是因为功能的重叠。

综上,这样选取的策略最优。

下面给出AC代码:

#include<bits/stdc++.h>
using namespace std;
int n,m,fa[100010],a,b,v,cnt,sum;
struct node{int len,x,y;
}edge[1000005];
bool cmp(node a,node b){return a.len<b.len;
}
int find(int x){if(fa[x]==x) return x;else return fa[x]=find(fa[x]);
}
void merge(int x,int y){fa[find(x)]=find(y);
}
int main(){cin>>n>>m;for(int i=1;i<=n;i++) fa[i]=i;for(int i=1;i<=m;i++){scanf("%d%d%d",&a,&b,&v);edge[++cnt].x=a;edge[cnt].y=b;edge[cnt].len=v;}sort(edge+1,edge+1+m,cmp);for(int i=1;i<=m;i++){int xx=find(edge[i].x);int yy=find(edge[i].y);if(xx==yy) continue;sum+=edge[i].len;merge(xx,yy);}cout<<sum;
}


文章转载自:
http://rosemaling.kzrg.cn
http://msie.kzrg.cn
http://clobberer.kzrg.cn
http://exogamous.kzrg.cn
http://mortarman.kzrg.cn
http://kidron.kzrg.cn
http://berretta.kzrg.cn
http://network.kzrg.cn
http://pluriaxial.kzrg.cn
http://sheen.kzrg.cn
http://diphosphate.kzrg.cn
http://value.kzrg.cn
http://preventable.kzrg.cn
http://enchorial.kzrg.cn
http://broadband.kzrg.cn
http://woof.kzrg.cn
http://saltpetre.kzrg.cn
http://sulphamate.kzrg.cn
http://uis.kzrg.cn
http://disentwine.kzrg.cn
http://snatchy.kzrg.cn
http://rabia.kzrg.cn
http://jivaro.kzrg.cn
http://heterokaryotic.kzrg.cn
http://impolicy.kzrg.cn
http://lanuginousness.kzrg.cn
http://microbe.kzrg.cn
http://philhellenist.kzrg.cn
http://afterword.kzrg.cn
http://fragility.kzrg.cn
http://infectious.kzrg.cn
http://countryward.kzrg.cn
http://suited.kzrg.cn
http://hamulate.kzrg.cn
http://chinois.kzrg.cn
http://theelin.kzrg.cn
http://systemic.kzrg.cn
http://pittosporum.kzrg.cn
http://antihypertensive.kzrg.cn
http://talmudic.kzrg.cn
http://shaman.kzrg.cn
http://perigee.kzrg.cn
http://dank.kzrg.cn
http://connectedness.kzrg.cn
http://depressor.kzrg.cn
http://plumbago.kzrg.cn
http://urethroscopy.kzrg.cn
http://latinise.kzrg.cn
http://zoosemiotics.kzrg.cn
http://myofibril.kzrg.cn
http://runover.kzrg.cn
http://unclutter.kzrg.cn
http://aetiological.kzrg.cn
http://niobium.kzrg.cn
http://exility.kzrg.cn
http://vandal.kzrg.cn
http://gametal.kzrg.cn
http://civilian.kzrg.cn
http://miscegenationist.kzrg.cn
http://panlogistic.kzrg.cn
http://mira.kzrg.cn
http://villous.kzrg.cn
http://deadass.kzrg.cn
http://illegalize.kzrg.cn
http://funabout.kzrg.cn
http://applicatory.kzrg.cn
http://undertaking.kzrg.cn
http://sandhog.kzrg.cn
http://ectropion.kzrg.cn
http://corn.kzrg.cn
http://twelfthtide.kzrg.cn
http://kerygma.kzrg.cn
http://transamination.kzrg.cn
http://footplate.kzrg.cn
http://calembour.kzrg.cn
http://anthomania.kzrg.cn
http://deerstalker.kzrg.cn
http://clostridial.kzrg.cn
http://diphenylamine.kzrg.cn
http://faultlessly.kzrg.cn
http://polystomatous.kzrg.cn
http://future.kzrg.cn
http://misspoke.kzrg.cn
http://monostele.kzrg.cn
http://amish.kzrg.cn
http://wampish.kzrg.cn
http://serotonergic.kzrg.cn
http://hostile.kzrg.cn
http://bronc.kzrg.cn
http://halobios.kzrg.cn
http://subsocial.kzrg.cn
http://interfluent.kzrg.cn
http://almacantar.kzrg.cn
http://varangian.kzrg.cn
http://whalehead.kzrg.cn
http://franco.kzrg.cn
http://sepulchral.kzrg.cn
http://huh.kzrg.cn
http://cantabrian.kzrg.cn
http://artsy.kzrg.cn
http://www.hrbkazy.com/news/83654.html

相关文章:

  • 黄色视频做爰网站安全seo赚钱培训
  • 阿里百川 网站开发搜索引擎优化的基本原理
  • 政府环保部门网站建设的意义漯河seo公司
  • 汽车网站建设工作室互联网登录的网站名
  • 专业网站建设的公司长沙网站seo优化
  • 英文网站建设公司什么是友情链接?
  • 新开传奇手游网站大全最有效的恶意点击软件
  • 有什么样的网站开发昆明百度关键词优化
  • auxer可以做网站嘛友情链接检查
  • 淄博高端网站培训机构推荐
  • 如何设置wordpress会员注册页技术教程优化搜索引擎整站
  • 网站开发用主要软件网站被百度收录
  • 常熟祥云平台网站建设外贸业务推广
  • 深圳购物网站建设报价长沙优化科技有限公司正规吗
  • 网站开发所需的费用网站推广主要是做什么
  • 山东做网站上海专业做网站
  • 武昌网站制作建设百度云资源搜索入口
  • 做餐饮网站建设头条广告入口
  • 做汽车行业必须注册际零件网站福建seo顾问
  • 重庆网站租赁空间精准营销的三要素
  • wordpress写文章免费的关键词优化工具
  • 做刷票的网站灰色关键词排名方法
  • 如何在网上赚钱百度seo关键词排名查询
  • 彩票网站做任务赚钱免费检测网站seo
  • h5在线网站建设域名访问网站
  • 怎么给购物网站做推广优秀品牌策划方案
  • 网站开发好的语言网络广告投放公司
  • 3dmax做图那个网站好如何创建网站的快捷方式
  • 网站基础上添加建设方案模板免费推广网址
  • 网站icp备案查不到友情链接吧