首页 > 其他分享 >acwing 1141. 局域网

acwing 1141. 局域网

时间:2024-12-11 19:57:14浏览次数:4  
标签:1141 edg int 局域网 fa 回路 define 连接 acwing

某个局域网内有 nn 台计算机和 kk 条 双向 网线,计算机的编号是 1∼n1∼n。由于搭建局域网时工作人员的疏忽,现在局域网内的连接形成了回路,我们知道如果局域网形成回路那么数据将不停的在回路内传输,造成网络卡的现象。

注意

  • 对于某一个连接,虽然它是双向的,但我们不将其当做回路。本题中所描述的回路至少要包含两条不同的连接。
  • 两台计算机之间最多只会存在一条连接。
  • 不存在一条连接,它所连接的两端是同一台计算机。

因为连接计算机的网线本身不同,所以有一些连线不是很畅通,我们用 f(i,j)f(i,j) 表示 i,ji,j 之间连接的畅通程度,f(i,j)f(i,j) 值越小表示 i,ji,j 之间连接越通畅。

现在我们需要解决回路问题,我们将除去一些连线,使得网络中没有回路且不影响连通性(即如果之前某两个点是连通的,去完之后也必须是连通的),并且被除去网线的 Σf(i,j)Σf(i,j) 最大,请求出这个最大值。

去除的最大就代表剩下的最小,而且还得连通,明显是最小生成树,无自环,无重边,这个没有回路怎么理解呢?就是没有环吧,好像最小生成树本来就没有环吧哈哈。看了一眼稀疏图,直接上kruskal,虽然这数据比较水,用prim和kruskal都可以过,但还是用最好的吧。

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pii pair<int,int>
#define inf 0x3f3f3f3f3f3f3f3f
#define endl "\n"
#define lowbit(x) (x&(-x))
const int N = 110;
int fa[N];
struct E{
    int a,b,w;
    bool operator < (const E& tmp){
        return this->w < tmp.w;
    }
}edg[N];
int n,k,sum1,sum2;
int find(int x){
    if(x==fa[x]) return x;
    else{
        fa[x] = find(fa[x]);
        return fa[x];
    }
}
void kul(){
    for(int i = 1; i <= k; i++){
       int pa = find(edg[i].a), pb = find(edg[i].b);
       if(pa!=pb){
         sum2 += edg[i].w;
         fa[pa] = pb;
       }  
    }
}
void solve(){
    cin >> n >> k; 
    for(int i = 1; i <= n; i++) fa[i] = i;
    for(int i = 1; i <= k; i++){
        cin >> edg[i].a >> edg[i].b >> edg[i].w;
        sum1 += edg[i].w;
    }
    sort(edg+1,edg+1+n);
    kul();
    cout << sum1-sum2 << endl;
}
signed main(){
    ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    int T=1;
    //cin >> T;
    while(T--) solve();
    return 0;
}

//
// 
//
//
//

标签:1141,edg,int,局域网,fa,回路,define,连接,acwing
From: https://blog.csdn.net/2403_85701606/article/details/144408073

相关文章

  • 局域网通过WOL唤醒电脑
    此篇文章在2022年4月20日被记录WakeOnLan简述一下什么是WakeOnLan,全称是通过网线唤醒(大白话),是一种电源管理系统,它是由IBM公司提出的网络唤醒标准,目前已被大多数的主板所支持。所存在的缺点就是只能通过网线唤醒,对我来说的话基本上用不到(我用的是笔记本),大部分的有线网卡都支持......
  • 两条宽带,两个路由器如何组建成同一个局域网
    https://www.52pojie.cn/archiver/tid-1752687.html星鱼 发表于2023-3-118:03两条宽带,两个路由器如何组建成同一个局域网本帖最后由星鱼于2023-3-118:26编辑目前有两条宽带线路,分别接入了不同的路由器中。网络1网段:192.168.17.1网络2网段:192.168.18.1在网络1下整了台NA......
  • 虚拟私人网(VPN) 虚拟局域网 及隧道技术(vxlan gre ipip eoip ethip )原理分析与实践(二)
    linux虚拟机中搭建了一个vxlan的演示环境环境准备vxlan创建验证模拟vxlan下挂设备VPN技术广泛应用于远程办公网络、云平台的主机迁移、端到端加密通信等等,本专栏系列文章将详细介绍常用的VPN技术原理,并搭建实验环境,进行实际演示验证,另通过日志、抓包等手段分......
  • AcWing 92. 递归实现指数型枚举
    文章目录前言代码思路前言简单题只有那么一些,后面的稍微难一点点的题,自己写一道可能就要一个小时。现在不写之后需要的时候可能就来不及了。好吧。种一棵树最好的时间是十年前,对,假设我十年之前是信息竞赛选手,把这些题刷得非常熟练,现在可能就不需要写这些算法题了,但是......
  • 端口映射让宿主机之外的局域网也能访问Hyper-V下虚拟机
    如果要让宿主机之外的局域网机器也能实现访问,要做端口映射实现,在宿主机打开命令窗口使用以下命令配置端口映射:#查询端口映射netshinterfaceportproxyshowv4tov4#查询指定IP端口映射netshinterfaceportproxyshowv4tov4|findstr"172.21.162.29"#增加一个端口......
  • Python 局域网远程控制电脑
    Python局域网远程控制电脑1.简介:一款由Python可以远程控制局域网电脑关机、重启、注销、锁定、休眠、退出登录甚至能操作远程电脑Cmd终端命令的一款工具。资源及源码已打包,大家可自行下载。工具分为1.0以及2.0版本,2.0版本在1.0终端命令行模式更改为网页界面化操作,可利......
  • Acwing1696. 困牛排序
    题意给定一个n个数的排列,每次操作将第一个数插入到任意数之后,求多少次操作后排列为升序若\(a_i>a_{i+1}\)那么至少操作i次才能将a_i插入到\(a_{i+1}\)之后这时我们思考是否可以通过i次操作,使得序列有序,假如此时\(a_{i+1~n}\)有序于是我们可以通过插入排序,使得序列有序如何......
  • AcWing 196 质数距离(素数,筛法)
    问题:给定L,R,找出[L,R]中距离最近和最远的质数对。分析:注意到L,R的范围很大,到了int极限值,问题毫无疑问是筛质数,不能用普通的筛法筛出[1,R](复杂度)。埃氏筛法本质是倍数标记合数,注意到如果x是合数,那它一定有不大于sqrt(x)的因数y,那么x就可以被y倍数标记。步骤:1.埃氏筛找出[1,sqrt(R......
  • 在Windows 10和Windows 11上,你可以通过设置Windows防火墙来限制外网访问,同时保持局域
    在Windows10和Windows11上,你可以通过设置Windows防火墙来限制外网访问,同时保持局域网的访问不受影响。以下是具体操作步骤:方法1:使用Windows防火墙设置限制打开防火墙设置:按 Win+R 打开运行对话框,输入 wf.msc 并按回车,打开“Windows防火墙高级安全”窗口。创建......
  • 闪电藤(局域网文件传输工具)2.7.0
    闪电藤是基于LocalSend的二次开发产品,在原有局域网文件传输基础上,增加了webdav传输和云传输的能力,是一个万能的文件传输助手。目前已支持了安卓、iOS、Mac、Windows和Linux,纯血鸿蒙。可完全代替微信文件传输助手和快牙特点说明: 闪电藤可以在同一个局域网下进行快速传输文......