c小红的图上划分(牛客127)

题意:
有一个无向图,有 n 个点 m 条边,q 个询问,每次给出 L,R,求将图划分为至少 L 个连通块,最多 R个连通块的最大划分价值,若不可划分输出 "NO ANSWER"。
图的划分定义为将图划分为一个或多个连通块,对于每个连通块,其点集为其边集中每一条边的两端点的集合,且点集内任意两点均可通过边集里的边互相到达。
划分价值定义为所有连通块边集中的最小边权。

分析:先将边从大到小排序;用并查集,如果新增边的点没有共同祖先,连通块就减1,只要判断连通块<=r即可满足条件,不用管l的值,因为减少一个连通块,也就是多增一条边,这条边一定会小于原来的值的,答案要的是最大值,所有不用管。

#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;
int f[N],ans[N];
struct A{
    int u,v,w;
}e[N];
int zx(int x){
    if(f[x]==x)return x;//x没爸爸
    else return f[x]=zx(f[x]);//找出爸爸的爸爸的。。 
}
void h(int x,int y){
    f[zx(y)]=zx(x);//x的最大祖先变成y最大祖先的爸爸; 
}
bool cmp(A x,A y){
    return x.w>y.w;
}
int main(){
    int n,m,q;cin>>n>>m>>q;
    for(int i=1;i<=m;i++)cin>>e[i].u>>e[i].v>>e[i].w;
    sort(e+1,e+m+1,cmp);
    for(int i=1;i<=n;i++)f[i]=i;
    int lt=n;
    for(int i=1;i<=m;i++){
        if(zx(e[i].u)!=zx(e[i].v)){
            h(e[i].u,e[i].v);
            lt--;
            ans[lt]=e[i].w;
        }
    }
    while(q--){
        int l,r;
        cin>>l>>r;
        if(r<lt)cout<<"NO ANSWER"<<endl;
        else cout<<ans[r]<<endl;
    }
    return 0;
}
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/44730.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何将本地仓库中的文件推送到远程git服务器

第一步&#xff1a;进入所在项目&#xff0c;右击打开"Git Bash Here" 第二步&#xff1a;git config --global user.email "18351810763163.com" // 输入你的名称 第三步&#xff1a;git config --global user.name "chenliang-sam&quo…

如何将一个2D数组切分成多个块

要将一个2D数组切分成多个块&#xff0c;可以考虑使用以下几种方法&#xff0c;具体取决于如何定义块的划分规则和需求。如果你希望将2D数组均匀地切分成固定大小的小块&#xff0c;可以使用简单的循环和切片操作。 1、问题背景 Python 中, 如果有一个 raw 数据文件&#xff0…

SSM社区物业管理系统-计算机毕业设计源码91276

摘要 随着城市化进程的加快&#xff0c;居民社区的规模和数量不断增长&#xff0c;传统的人工管理方式已经无法满足管理需求。借助信息技术和互联网应用&#xff0c;社区物业管理系统可以实现物业管理信息的集中化、自动化和便捷化&#xff0c;提供全方位的管理和服务支持。社区…

智慧水利的变革之路:如何通过大数据、物联网和人工智能构建高效、智能、可持续的水利管理新模式

目录 一、引言&#xff1a;智慧水利的时代背景与意义 二、大数据&#xff1a;水利管理的数据基石 &#xff08;一&#xff09;数据收集与整合 &#xff08;二&#xff09;数据分析与挖掘 三、物联网&#xff1a;水利管理的感知神经 &#xff08;一&#xff09;智能感知与监…

ONLYOFFICE 8.1版本版本桌面编辑器测评

ONLYOFFICE官网链接&#xff1a;ONLYOFFICE - 企业在线办公应用软件 | ONLYOFFICE ONLYOFFICE在线办公套件&#xff1a;在线办公套件 | ONLYOFFICE ONLYOFFICE在线PDF编辑器、阅读器和转换器&#xff1a;在线PDF查看器和转换器 | ONLYOFFICE ONLYOFFICE 8.1版本桌面编辑器是…

开源可视化Flutter图表库:Graphic

Graphic&#xff1a;用Graphic绘制数据的无限可能- 精选真开源&#xff0c;释放新价值。 概览 Graphic&#xff0c;这个基于Flutter的图表库&#xff0c;以其源自《The Grammar of Graphics》的灵感&#xff0c;为数据可视化提供了一种全新的方法。它不仅仅是一个工具&#xf…

【Pytorch】RNN for Image Classification

文章目录 1 RNN 的定义2 RNN 输入 input, h_03 RNN 输出 output, h_n4 多层5 小试牛刀 学习参考来自 pytorch中nn.RNN()总结RNN for Image Classification(RNN图片分类–MNIST数据集)pytorch使用-nn.RNNBuilding RNNs is Fun with PyTorch and Google Colab 1 RNN 的定义 nn.…

【ECCV 2024】首个跨模态步态识别框架:Camera-LiDAR Cross-modality Gait Recognition

【ECCV 2024】首个跨模态步态识别框架&#xff1a;Camera-LiDAR Cross-modality Gait Recognition 简介&#xff1a;主要方法&#xff1a;实验结果&#xff1a; 论文&#xff1a;https://arxiv.org/abs/2407.02038 简介&#xff1a; 步态识别是一种重要的生物特征识别技术。基…

算法力扣刷题记录 四十一【N叉树遍历】

前言 依然是遍历问题。由二叉树扩展到N叉树遍历。 记录 四十一【N叉树遍历】 一、【589. N叉树的前序遍历】 题目 给定一个 n 叉树的根节点 root &#xff0c;返回 其节点值的 前序遍历 。 n 叉树 在输入中按层序遍历进行序列化表示&#xff0c;每组子节点由空值 null 分隔…

第十八章 Express multer 文件上传

本章将学习Express multer 文件上传 &#xff0c;因为Nest 的文件上传是基于 Express 的中间件 multer 实现的&#xff0c;所以在学习 Nest 文件上传之前&#xff0c;我们先学习下 multer 包 首先先创建 multer-test 文件夹执行下面代码 创建package.json npm init -y接着安装…

深入浅出 Spring @Async 异步编程的艺术

目录 一、异步编程 二、Async 介绍 2.1 Async 使用 三、Async 原理 一、异步编程 在软件开发中&#xff0c;异步编程是非常关键的&#xff0c;尤其是构建高性能、高响应度的应用时。异步编程的主要优势在于它能够避免阻塞操作&#xff0c;提高程序的效率和用户体验。异步编…

修BUG:程序包javax.servlet.http不存在

貌似昨晚上并没有成功在tomcat上面运行&#xff0c;而是直接运行了网页。 不知道为啥又报错这个。。。 解决方案&#xff1a; https://developer.baidu.com/article/details/2768022 就整了这一步就行了 而且我本地就有这个tomcat就是加进去了。 所以说啊&#xff0c;是不是&a…

eNSP公司管理的对象及策略

拓扑图[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 ) 实验需求 第一步&#xff1a;根据题目搭建拓扑图 其中交换机的型号为&#xff1a;S5700 防火墙设备为&#xff1a;USG6000V 第二步&#xff1a;启动防火墙设备 首先会让你输入密码&#xff0c;…

【MySQL】常见的MySQL日志都有什么用?

MySQL日志的内容非常重要&#xff0c;面试中经常会被问到。同时&#xff0c;掌握日志相关的知识也有利于我们理解MySQL 底层原理&#xff0c;必要时帮助我们排查解决问题。 MySQL中常见的日志类型主要有下面几类(针对的是InnoDB 存储引擎): 错误日志(error log):对 MySQL 的启…

CentOS 6.5配置国内在线yum源和制作openssh 9.8p1 rpm包 —— 筑梦之路

CentOS 6.5比较古老的版本了&#xff0c;而还是有一些古老的项目仍然在使用。 环境说明 1. 更换国内在线yum源 CentOS 6 在线可用yum源配置——筑梦之路_centos6可用yum源-CSDN博客 cat > CentOS-163.repo << EOF [base] nameCentOS-$releasever - Base - 163.com …

新兴市场游戏产业爆发 传音以技术抢抓机遇 ​

随着年轻人口的增加以及互联网的普及,非洲、中东等新兴市场正迎来游戏产业的大爆发,吸引着全球游戏企业玩家在此开疆辟土。中国出海企业代表传音以新兴市场需求为中心,秉持本地化创新理念不断加强游戏等关键领域技术攻关凭借移动终端设备为全球玩家带来极致游戏体验,收获了消费…

就业平台小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;学生管理&#xff0c;企业管理&#xff0c;企业类型管理&#xff0c;留言板管理&#xff0c;系统管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;招聘信息&#xff0c;简历&#xff0c;我的…

MapReduce底层原理详解:大案例解析(第32天)

系列文章目录 一、MapReduce概述 二、MapReduce工作机制 三、Map&#xff0c;Shuffle&#xff0c;reduce阶段详解 四、大案例解析 文章目录 系列文章目录前言一、MapReduce概述二、MapReduce工作机制1. 角色与组件2. 作业提交与执行流程1. 作业提交&#xff1a;2. Map阶段&…

MATLAB中c2d函数用法

目录 语法 说明 示例 在MATLAB中&#xff0c;c2d函数用于将连续时间系统&#xff08;Continuous-Time System&#xff09;转换为离散时间系统&#xff08;Discrete-Time System&#xff09;。以下是c2d函数的基本语法、说明以及示例&#xff1a; 语法 sys_d c2d(sys_c, T…

【每天认识一个漏洞】spf邮件伪造漏洞

&#x1f31d;博客主页&#xff1a;泥菩萨 &#x1f496;专栏&#xff1a;Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 &#x1f3a3;漏洞危害 允许攻击者伪造发件人身份&#xff0c;从而发送钓鱼邮件或垃圾邮件&#xff0c;获取接收方的信任&am…