路线规划

戳我找原题

成为热门手记人偶的薇尔莉特伊芙嘉登最近收到了非常多的委托,这些委托者分散在世界的各地,各个国家都有。但正值战争的尾声,穿行于各个国家之间是非常危险的,一路上会有许多的敌人,这些敌人或许不会对我们的薇尔莉特构成威胁,但是依然会浪费她的时间,手记人偶的时间可是非常宝贵的。现给定有 n 个结点,m 条边的图,除了 1 号结点外,其余 n-1 个结点代表着分散在各地的委托者,他们之间由 m 条道路连接,数据保证图是连通的。现在第 i 道路上有 ai个敌人,每打晕 1 个敌人需要 1 个单位时间。可以理解为通行第 i 条路所需要的时间 ai (1 ≤ i ≤ m),当薇尔莉特经过一条道路时,仅仅会打晕该条路上的敌人,第一次打晕某条道路上的敌人后,下次经过该条道路仍需要打晕他们。

薇尔莉特从 1 号结点出发,完成所有的委托后还要回到 1 号结点,薇尔莉特希望自己拿出最好的状态去完成每一个委托,但记路这种小事情则会严重影响薇尔莉特的状态。

所以,请你帮帮我们的薇尔莉特,在 走过的路 最少的前提下,求出完成所有委托所需时间 T 的最小值。
PS:一条路只要被经过一次或以上即视为 走过的路

解题思路

经典的最小生成树模板题(kruskal算法)
感觉这应该是这次比赛中最简单的题
就不过多解释了
不懂建议看一下b站一个up对最小生成树的动画
讲的非常生动,强推
PS:因为是来回,所以最后答案记得*2

AC代码

#include <cstdio>
#include <algorithm>
using namespace std;
long long int f[10000001];
long long int find(int x) {if(x==f[x])return x;return f[x]=find(f[x]);
}//查找父结点
struct Nebula {long long int u,v,a;bool operator<(const Nebula&t)const {return a<t.a;}
} s[8000001];
int main() {long long int u,v,a;int n,m;scanf("%d %d",&n,&m);//输入数据for(long long int i=1; i<=n; i++)f[i]=i;for(int i=1; i<=m; i++)scanf("%lld %lld %lld",&s[i].u,&s[i].v,&s[i].a);//将边的数据详细输入sort(s+1,s+1+m);//排序 把边权按递增排序long long int ans=0;for(int i=1; i<=m; i++) {long long int fv=find(s[i].v);long long int fu=find(s[i].u);if(fv==fu)//如果构成了环,跳过下一个continue;else {ans+=s[i].a;f[fv]=fu; }}printf("%lld",ans*2);//来回答案*2
}
#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;
long long int f[10000001];
long long int find(int x) {if(x==f[x])return x;return f[x]=find(f[x]);
}
struct Nebula {long long int u,v,a;bool operator <(const Nebula&t)const {return  a<t.a;}
} cx[200001];
int main() {int n,m;cin>>n>>m;for(long long int i=1; i<=n; i++)f[i]=i;for(int i=1; i<=m; i++) {long long int u,v,a;cin>>u>>v>>a;cx[i].u=u;cx[i].a=a;cx[i].v=v;}sort(cx+1,cx+1+m);long long int ans=0;for(int i=1; i<=m; i++) {long long int fu=find(cx[i].u);long long int fv=find(cx[i].v);if(fu==fv)continue;else {ans+=cx[i].a;f[fv]=fu;}}cout<<ans*2;
}

附:初来乍到,如果有不足之处,恳请各位大牛指正,如果题解有错误或者没写清楚的地方也欢迎在评论区提问~

牛客IOI周赛22-普及组 路线规划 查并集相关推荐

  1. 牛客IOI周赛26-提高组(逆序对,对序列,未曾设想的道路) 题解

    文章目录 逆序对 对序列 未曾设想的道路 牛客IOI周赛26-提高组 逆序对 这种套路之前已经见过几次了,肯定不是模拟操作数列 opt 1 对于i∈[1,l)⋃(r,n]i∈[1,l)\bigcup( ...

  2. 牛客IOI周赛27-普及组

    牛客IOI周赛27-普及组 A题(小H的小猫) (来源:nowcoder_牛客IOI周赛27-普及组_A题) 题目链接:https://ac.nowcoder.com/acm/contest/1915 ...

  3. 牛客IOI周赛22-提高组 华丽转身 C++

    牛客IOI周赛22-提高组 华丽转身 C++ 原题链接 在红星中学,一个年级一学年共有 n 场考试,每场考试都有 m 名同学参加,有一个巨佬叫李华 ,他已经不屑于通过AK考试来获得快感,于是他找到了一 ...

  4. 牛客IOI周赛22-普及组

    战争尾声 链接:https://ac.nowcoder.com/acm/contest/11038/A 来源:牛客网 当攻占主城成功的信号弹与敌人的子弹同时射出,信号弹照亮了民众对于和平的渴望与对于未 ...

  5. 牛客IOI周赛19-普及组 C.小y的旅行

    题目链接 题意 n个点m条边的无向图,最少需要删除多少条边,使得编号≤k\le k≤k的点不在一个环上. 思路 采用并查集将编号都大于K的边进行合并,这样相当于将一些无关的边进行缩点,然后再进行一次并 ...

  6. 牛客IOI周赛19-普及组 B.小y的序列

    题目链接 题意 长度为n的序列,最少需要修改多少个数字,满足a[i+1]=a[i]+i,i∈[2,n]a[i+1] = a[i] + i,\ i\in[2, n]a[i+1]=a[i]+i, i∈[2 ...

  7. 牛客IOI周赛16-普及组

    比赛链接 文章目录 求导 题目描述 题解: 猜数 题意: 题解: 方法一 贪心 方法二 暴力 答题卡 题意: 题解: 代码: 求导 链接: 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C+ ...

  8. 牛客IOI周赛17-普及组题解

    题目链接 A.夹娃娃 题意: 给定n个值ai给定n个值a_i给定n个值ai​ q次询问,每次给出l和rq次询问,每次给出l和rq次询问,每次给出l和r 求出区间l到r的和求出区间l到r的和求出区间l到 ...

  9. 牛客OI周赛2-提高组

    A.游戏 链接:https://www.nowcoder.com/acm/contest/210/A 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他 ...

最新文章

  1. 修改2k自动登陆的脚本
  2. “机器换人”没什么可抱怨
  3. 30秒内便能学会的30个超实用Python代码片段
  4. 阿里云安装JDK1.7
  5. scala中给集合创建懒加载view视图
  6. Codeforces Round #719 (Div. 3)/ Codeforces Round #720 (Div. 2)
  7. ubuntu安装python百度经验_如何在Ubuntu 20.04上安装Python 3.9(含python编译安装和使用Apt命令安装)...
  8. IE和Chrome都将支持asm.js
  9. 华为云linux用户名,玩转华为云服务器ECS:001 如何登录并创建新用户
  10. 30多岁的程序员仍然奋斗在一线
  11. 梯度,散度,旋度的理解
  12. vue动态加载页面组件
  13. 【emoji大全宝典】
  14. 如何搭建一套业务、数据一体化的数据指标体系
  15. Android Compose 新闻App(五)Room复杂数据、AlertDialog弹窗、页面导航
  16. 有关于Mapreduce的读后感
  17. html转word样式出问题
  18. 视觉SLAM小知识——叉乘的物理意义
  19. IBM DB2基础知识学习作业
  20. 浙江生物计算机技术,New Page 1

热门文章

  1. 我的专业我做主ppt计算机,我的专业我做主(会计专业入门知识).ppt
  2. 福昕阅读器无法注释、高亮、打字等情况
  3. C++函数(三)------函数与结构体
  4. 精通比特 - 第4章,高级密钥和地址
  5. 使用acme.sh安装 Let’ s Encrypt 提供的免费 SSL 证书
  6. 使用openssl生成CA、server、client私钥和证书(证书包括公钥)
  7. 小米新品发布会2021 3月29日小米新品发布会
  8. if...if 和if...elif的区别
  9. 图像去噪--代码实现
  10. 华为OD机试 九宫格按键输入法