分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

E - QS Network

发布时间:2023-09-06 01:43责任编辑:苏小强关键词:暂无标签

E - QS Network

思路:最小生成树,数组不要开小了。
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#define MAXN 100010using namespace std;int t,n,tot,sum,ans;int fa[MAXN],mon[MAXN];struct nond{ ???int x,y,z;}v[1000050];int cmp(nond a,nond b){ ???return a.z<b.z;}int find(int x){ ???if(fa[x]==x) ???return x; ???else return fa[x]=find(fa[x]); ???}int main(){ ???scanf("%d",&t); ???while(t--){ ???????scanf("%d",&n); ???????for(int i=1;i<=n;i++) ???scanf("%d",&mon[i]); ???????for(int i=1;i<=n;i++) ???????????for(int j=1;j<=n;j++){ ???????????????int x;scanf("%d",&x); ???????????????v[++tot].x=i;v[tot].y=j;v[tot].z=x+mon[i]+mon[j]; ???????????} ???????sort(v+1,v+1+tot,cmp); ???????for(int i=1;i<=n;i++) ???fa[i]=i; ???????for(int i=1;i<=tot;i++){ ???????????int dx=find(v[i].x); ???????????int dy=find(v[i].y); ???????????if(dx==dy) ???continue; ???????????sum++;fa[dy]=dx; ???????????ans+=v[i].z; ???????????if(sum==n-1) ???break; ???????} ???????cout<<ans<<endl;ans=0;sum=0;tot=0; ???}}

E - QS Network

原文地址:https://www.cnblogs.com/cangT-Tlan/p/8461186.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved