51nod3061 车

article/2025/10/1 18:06:57

题目

在这里插入图片描述
题目链接

解题思路

提一种不需要生成树的解法。
我们将询问挂到点上,使用启发式合并的并查集。当询问的两边合并到一起时,我们就得到了答案。
整体复杂度 O ( n l o g 2 n ) O(nlog_2n) O(nlog2n)

代码

#include <cstdio>
#include <algorithm>
#include <cstring>
#include <vector>
using namespace std;const int N = 2e5 + 100;struct node {int u, v, w;node() {}node(int u, int v, int w) :u(u), v(v), w(w) {}
}sa[N];bool operator < (node a, node b) {return a.w > b.w;
}int fa[N], aa[N], bb[N], ans[N], R;
vector<int> Q[N];int find(int x) {if (fa[x] == x) return fa[x];return fa[x] = find(fa[x]);
}void join(int x, int y) {x = find(x); y = find(y);if (x == y) return;if (Q[x].size() > Q[y].size()) swap(x, y);fa[x] = y;for (int id : Q[x]) {if (ans[id] != -1);else if (find(aa[id]) == find(bb[id])) ans[id] = R;else Q[y].push_back(id);}
}int n, m, q;int main() {//freopen("0.txt", "r", stdin);scanf("%d%d", &n, &m);for (int i = 1; i <= m; i++) scanf("%d%d%d", &sa[i].u, &sa[i].v, &sa[i].w);scanf("%d", &q);for (int i = 1; i <= q; i++) {scanf("%d%d", &aa[i], &bb[i]);Q[aa[i]].push_back(i);Q[bb[i]].push_back(i);}for (int i = 1; i <= n; i++) fa[i] = i;sort(sa + 1, sa + m + 1);memset(ans, -1, sizeof(ans));for (int i = 1; i <= m; i++) {R = sa[i].w;join(sa[i].u, sa[i].v);}for (int i = 1; i <= q; i++) printf("%d\n", ans[i]);return 0;
}

http://chatgpt.dhexx.cn/article/aTlQYseZ.shtml

相关文章

51nod 1279 扔盘子

题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1279 题目: 有一口井,井的高度为N,每隔1个单位它的宽度有变化。现在从井口往下面扔圆盘,如果圆盘的宽度大于井在某个高度的宽度,则圆盘被卡住(恰好等于的话会下去)。 盘子有几种命运:1、掉到…

51nod 1352:集合计数

1352 集合计数 基准时间限制&#xff1a;1 秒 空间限制&#xff1a;131072 KB 分值: 20 难度&#xff1a;3级算法题 收藏 关注 给出N个固定集合{1&#xff0c;N},{2,N-1},{3,N-2},...,{N-1,2},{N,1}.求出有多少个集合满足&#xff1a;第一个元素是A的倍数且第二个元素是B的倍数…

51nod 1266 蚂蚁

题目链接&#xff1a;https://www.51nod.com/onlineJudge/questionCode.html#!problemId1266 题目&#xff1a; n只蚂蚁以每秒1cm的速度在长为Lcm的竿子上爬行。当蚂蚁爬到竿子的端点时就会掉落。由于竿子太细&#xff0c;两只蚂蚁相遇时&#xff0c;它们不能交错通过&#xff…

51nod3155 跳房子

3155 跳房子 小华正在和她的小伙伴玩跳房子游戏。这是一个加强版的跳房子&#xff0c;每一行的格子数量可能超过 2 个。 这个游戏需要在地面上画了n排格子&#xff0c;其中第i排包含a[i]个格子。&#xff08;保证两端的这两排仅有一个格子&#xff09; 之后规定两端的这两个格…

Pycharm中用Appium框架编写第一个自动化脚本

一.环境依赖 Node.js appium python jdk Android SDK Appium-Python-Client Appium-doctor 二.环境搭建 提醒&#xff1a;安装路径如果要自定义的话尽量不要出现中文&#xff0c;不然很容易出现各种报错&#xff01; cmd尽量用管理员身份运行 1.Node.js 下载地址&am…

软件行为(五)之数据存储

笔者愚见&#xff1a;数据的存储方式是软件行为中的重中之重。 存储数据大约有4个地方&#xff1a;寄存器、高速缓存、内存及硬盘等。其中cpu对数据的访问速度也是依次降低&#xff0c;如下图 上图从上到下也是cpu访问数据的顺序&#xff0c;CPU的数据去寄存区去拿&#xff0c…

探究业界云存储平台(1):开源的软件定义存储—CoprHD

在接下来的两章中&#xff0c;我将分别为大家介绍与分析三款软件定义存储解决方案&#xff1a;CoprHD、Ceph与ScaleIO&#xff0c;并对后两者进行性能比较分析。 一、开源的软件定义存储—CoprHD 了解开源的CoprHD&#xff08;CoprHD&#xff09;&#xff0c;需要先了解EMC V…

软件定义存储2.0,谁领风骚?

关注我们牛年牛气冲天 中国的软件定义存储&#xff08;SDS&#xff09;市场就像是早上八九点钟的太阳&#xff0c;那样耀眼&#xff0c;生机勃勃&#xff0c;富有朝气。IDC的报告显示&#xff0c;2020年全年&#xff0c;中国SDS市场规模同比增长51.7%&#xff0c;相比2019年&am…

软件定义存储

在一个生成的数据和数据种类都空前大量的时代&#xff0c;软件定义的存储赋予了企业有效应对此爆炸式增长的途径。 当然&#xff0c;随着营销机器在过去几年的大肆渲染&#xff0c;我们越来越难以了解软件定义的存储的确切含义。因此&#xff0c;为了更好地了解软件定义的存储可…

软件定义存储的逆袭

近日&#xff0c;IDC《2017年第二季度中国软件定义存储及超融合市场跟踪报告》的发布在国内软件定义存储&#xff08;SDS&#xff09;和超融合&#xff08;HCI&#xff09;市场激起涟漪。去年还隐身于“Others”的一众厂商中&#xff0c;今年却一跃成为SDS市场前三&#xff0c;…

SDS软件定义存储

计算机发展到今天&#xff0c;软件定义已经是一种潮流&#xff0c;前有软件定义网络&#xff0c;后有软件定义存储。 对于软件定义存储来说&#xff0c;是随着当年EMC在EMC World上发布的软件定义存储战略迅速成为业界热点的。软件定义存储将硬件存储资源整合起来&#xff0c;…

基于对象的软件定义存储——联想 NetApp DXL系列对象存储方案

联想 DXL 系列对象存储 基于NetApp StorageGRID 技术的联想DXL系列对象存储是一款基于对象的软件定义的存储&#xff0c;它支持 Amazon Simple Storage Service (S3) API 等行业标准对象 API。您可以利用它在全球范围内的 16 个数据中心之间构建一个单一名称空间&#xff0c;并…

软件定义的存储时代即将结束

数据存储、安全性、保护和整体管理对于大多数组织的生存至关重要。 从软件定义的存储时代的结束到本地存储的回归&#xff0c;Nyriad的首席营收官概述了他对最新技术趋势的看法&#xff0c;并提供了他对2023年将会发生的预测。 从以CPU为中心的软件定义存储过渡到卸载辅助架构…

【存储】软件定义存储,看这一篇就够了!

原文&#xff1a;https://www.sohu.com/a/397070625_505795 1.SDS科普 SDS(Software Defined Storage)即软件定义存储&#xff0c;简单地说就是将存储硬件和软件进行分离&#xff0c;采用标准化硬件作为载体(如X86架构)&#xff0c;基于软件实现企业级存储功能和服务。相对于传…

软件定义存储的特征及如何工作

软件定义存储的特征 1 可扩展性 软件定义存储可从传统三节点扩展为数千节点&#xff0c;随着存储设备数量的逐渐递增&#xff0c;软件定义存储内部吞吐量也会不断增加&#xff0c;各项存储性能呈现出线性扩展性能&#xff0c;确保信息可允许群集中的应用控制及访问。 2 弹性…

软件定义存储的定义与分类

2011年8月21日&#xff0c;Netscape创始人马克安德森&#xff08;Marc Andreessen, 硅谷著名投资人, 投资了Facebook、Groupon、Skype、Twitter、Zynga和LinkedIn等高科技新秀&#xff09;&#xff0c;在华尔街日报上发表《软件正在吞噬整个世界》&#xff0c;认为当今的软件应…

【存储】SDS软件定义存储,看这一篇就够了

目录 一、简略说明 二、详细说明 作者&#xff1a;bandaoyuUESTC ,连接&#xff1a;https://blog.csdn.net/bandaoyu/article/details/110245309&#xff0c;不断编辑中 一、简略说明 0.通俗讲是SDS 即存储软件和硬件不绑定&#xff0c;软件不是作为存储设备中的固件&#…

软件定义存储概览(一篇就够)

以下文章来源于TaoCloud &#xff0c;作者刘爱贵 刘爱贵的博客_CSDN博客-数据存储,GNU/LINUX,程序人生领域博主 1.SDS科普 SDS&#xff08;Software Defined Storage&#xff09;即软件定义存储&#xff0c;简单地说就是将存储硬件和软件进行分离&#xff0c;采用标准化硬件…

软件定义的存储

软件定义存储源于VMware公司于2012年提出的软件定义的数据中心&#xff08;SDDC&#xff09;。存储作为软件定义的数据中心不可或缺的一部分&#xff0c;其以虚拟化为基础&#xff0c;但又不仅限于虚拟化。存储虚拟化一般只能在专门的硬件设备上应用&#xff0c;很多设备都是经…

软件定义存储,看这一篇就够了!-- 转自360DOC

1.SDS科普 SDS&#xff08;Software Defined Storage&#xff09;即软件定义存储&#xff0c;简单地说就是将存储硬件和软件进行分离&#xff0c;采用标准化硬件作为载体&#xff08;如X86架构&#xff09;&#xff0c;基于软件实现企业级存储功能和服务。相对于传统存储硬件盒…