洛谷P2820 局域网
来源:互联网 发布:微博的个性域名怎么改 编辑:程序博客网 时间:2024/06/05 06:59
题目背景
某个局域网内有n(n<=100)台计算机,由于搭建局域网时工作人员的疏忽,现在局域网内的连接形成了回路,我们知道如果局域网形成回路那么数据将不停的在回路内传输,造成网络卡的现象。因为连接计算机的网线本身不同,所以有一些连线不是很畅通,我们用f(i,j)表示i,j之间连接的畅通程度,f(i,j)值越小表示i,j之间连接越通畅,f(i,j)为0表示i,j之间无网线连接。
题目描述
需要解决回路问题,我们将除去一些连线,使得网络中没有回路,并且被除去网线的Σf(i,j)最大,请求出这个最大值。
输入输出格式
输入格式:第一行两个正整数n k
接下来的k行每行三个正整数i j m表示i,j两台计算机之间有网线联通,通畅程度为m。
输出格式:一个正整数,Σf(i,j)的最大值
输入输出样例
输入样例#1:
5 51 2 81 3 11 5 32 4 53 4 2
输出样例#1:
8
说明
f(i,j)<=1000
最小生成树裸题,用 kruskal 就行了。。。
附代码:
#include<iostream>#include<algorithm>#include<cstdio>#define MAXN 110using namespace std;int n,m,fa[MAXN];long long s=0,ans=0;struct node{ int u,v,w;}a[MAXN];inline int read(){ int date=0,w=1;char c=0; while(c<'0'||c>'9'){if(c=='-')w=-1;c=getchar();} while(c>='0'&&c<='9'){date=date*10+c-'0';c=getchar();} return date*w;}bool cmp(const node &x,const node &y){ return x.w<y.w;}int find(int x){return fa[x]==x?x:fa[x]=find(fa[x]);}void uniun(int x,int y){x=find(x);y=find(y);if(x!=y)fa[y]=x;}void kruskal(){ int f=0; for(int i=1;i<=m;i++) if(find(a[i].u)!=find(a[i].v)){ uniun(a[i].u,a[i].v); ans+=a[i].w; f++; } if(f<n-1)printf("-1\n"); else printf("%lld\n",s-ans);}int main(){ int u,v,w; n=read();m=read(); for(int i=1;i<=n;i++)fa[i]=i; for(int i=1;i<=m;i++){ u=read();v=read();w=read(); if(w){ a[i].u=u;a[i].v=v; a[i].w=w; } else{ m--; i--; } s+=(long long)w; } sort(a+1,a+m+1,cmp); kruskal(); return 0;}
阅读全文
0 0
- 洛谷P2820 局域网
- SSL P2820 I Liked Matrix!
- 局域网??
- 局域网
- 局域网
- 局域网
- 局域网
- 局域网
- 局域网
- 局域网
- 局域网
- 局域网
- 局域网
- 虚拟局域网和局域网
- 无线局域网,有线局域网
- 无法访问局域网
- 局域网维护
- 局域网聊天工具
- 腾讯面试官送给准程序员的9条建议!
- python工程师(web开发和爬虫方向)-面试经历
- java网络编程小谈
- pom配置文件---ssm(学习笔记)
- Pycharm中本地包导入问题Unresolved reference
- 洛谷P2820 局域网
- springboot整合mybatis,swagger ui
- 10.19周四
- 最新微信退款结果通知解密(php版)
- 开源项目:购物软件的开发
- shiro学习笔记
- Linux编程预习-函数
- Leetcode 695. Max Area of Island
- 【网络编程】TCP状态转换图(重点)