区间合并+并查集

news2024/11/16 7:21:27

前言:写完这个题目的时候没意识到这个和区间合并是等价的,现在看起来确实是一个区间合并的题目
(注意这个多米诺骨牌是可以连续推倒的)


在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;

#define int long long
int t;
int n,m;
const int N = (int)2e5+5;
struct node{
	int h,pos;
	bool operator<(node b){
		return pos < b.pos;
	}
}sto[N];
int fa[N];
int find(int x){
	if(x==fa[x]) return x;
	return fa[x] = find(fa[x]);
}
int ans[N];

bool cmp(int a,int b){
	return a>b;
}

signed main(){
	cin >> t;
	while(t--){
		cin >> n >> m;
		for(int i=1;i<=n;i++){
			cin >> sto[i].h;
		}
		for(int i=1;i<=n;i++){
			cin >> sto[i].pos;
		}
		sort(sto+1,sto+1+n);
		for(int i=1;i<=n;i++) fa[i] = i;
		int j;
		for(int i=1;i<=n;i=j){
			int hi = sto[i].h, posi= sto[i].pos;
			int en = hi + posi;
			for(j=i+1;j<=n;j++){
				int hj = sto[j].h, posj = sto[j].pos;
				if(en>=posj){  // 如果能够到达 
					fa[j] = i;
					//更新我们的长度
					en = max(en,hj+posj); 
				}else{
					break;
				}
			}
		}
		for(int i=1;i<=n;i++) ans[i] = 0;
		for(int i=1;i<=n;i++){
			int x = find(i);
			//cout << " i " << x << endl;
			ans[x]++;
		}

		sort(ans+1,ans+1+n,cmp);
		int e = 0;
		//cout << " ans 1 " << ans[1] << endl;
		for(int i=1;i<=m;i++){
			e+=ans[i];
		}
		cout << e << endl;
	}
	return 0;
}

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

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

相关文章

转发和重定向的区别

转发和重定向的区别 转发是一次请求。因此浏览器地址栏上的地址不会发生变化。 重定向是两次请求。因此浏览器地址栏上的地址会发生变化 转发的代码实现&#xff1a;request.getRequestDispatcher(“/index”).forward(request,response); 重定向的代码实现&#xff1a;resp…

学习 Java 和数据库:从前端到全栈的进阶之路

作为一名前端开发者&#xff0c;掌握 Java 和数据库知识不仅能提升你的技术水平&#xff0c;还能让你在全栈开发的道路上走得更远&#xff08;主要是涨薪&#xff09;。本文将为你提供一个详尽的学习大纲&#xff0c;帮助你从零开始学习 Java 和数据库&#xff0c;并解释为什么…

Windows离线安装openSSH服务实现远程访问

1、问题概述? 在企业的实际的开发环境中,我们的计算机可能是没有网络的,这种时候我们安装openSSH就需要通过离线的方式安装。 1.1、下载openSSH离线包 离线下载地址:https://github.com/PowerShell/Win32-OpenSSH/releases msi格式可以在windows中直接安装 下载之后直接…

机器人拾取系统关节机械臂通过NY-PN-EIPZ进行命令控制

关节机械臂是一种精密的机器&#xff0c;旨在模拟人类手臂在订单拣选操作中的运动。这些多功能机器人由多个关节组成&#xff0c;通常有 4 到 7 个轴&#xff0c;使它们能够高度自由地移动&#xff0c;并在仓库内以各种方向和位置接触物品。 制造工厂智能仓库系统中的关节机械臂…

centos7.9系统安装cloudpods(一)

1. 简介&#xff1a; Cloudpods 是一款简单、可靠的企业IaaS资源管理软件。帮助未云化企业全面云化IDC物理资源&#xff0c;提升企业IT管理效率。 Cloudpods 帮助客户在一个地方管理所有云计算资源。统一管理异构IT基础设施资源&#xff0c;极大简化多云架构复杂度和难度&…

Datawhale X 李宏毅苹果书 AI夏令营(深度学习进阶)taks1

深度学习的基础 常见的临界点的种类为局部最小值和鞍点 1.局部最小值 对于任何目标函数f(x)&#xff0c;如果在x处对应的f(x)值小于在x附近任意其他点的f(x)值&#xff0c;那么f(x)可能是局部最小值。如果f(x)在x处的值是整个域中目标函数的最小值&#xff0c;那么f(x)是全局…

如何将LaTeX数学公式嵌入到PowerPoint中

如何将LaTeX数学公式嵌入到PowerPoint中 简介 在学术演示或技术报告中&#xff0c;清晰且专业地展示数学公式是至关重要的。PowerPoint虽然提供了一些基本的公式编辑功能&#xff0c;但如果你需要更复杂或格式严格的公式&#xff0c;使用LaTeX生成公式并嵌入到PPT中是一个极佳…

huggingface下载model

0x00 背景 服务器的普通用户&#xff0c;不具有root权限服务器网络不稳定 0x01 解决办法 使用镜像【HF-Mirror】提供的工具hfd 方法三&#xff1a;使用 hfd hfd 是本站开发的 huggingface 专用下载工具&#xff0c;基于成熟工具 gitaria2&#xff0c;可以做到稳定下载不断…

安卓中 onClick(View v) 方法在主线程还是子线程运行

在Android开发中&#xff0c;onClick(View v) 方法通常是在主线程&#xff08;也称为UI线程&#xff09;中运行的。这个方法是在用户与界面元素&#xff08;如按钮&#xff09;进行交互时&#xff0c;由系统框架自动调用的。由于Android的UI操作必须是线程安全的&#xff0c;并…

MySQL 数据库深度解析:安装、语法与高级查询实战

一、引言 在现代软件开发和数据管理领域中&#xff0c;MySQL 数据库凭借其高效性、稳定性、开源性以及广泛的适用性&#xff0c;成为了众多开发者和企业的首选。无论是小型项目还是大型企业级应用&#xff0c;MySQL 都能提供可靠的数据存储和管理解决方案。本文将深入探讨 MyS…

QT Creator UI中文输入跳出英文

笔者用的是QQ拼音输入&#xff0c;发现只要在UI中加入了QTableWidget&#xff0c;输入多几次中文&#xff0c;就会跳入英文。 后面改用搜狗拼音稍微好一些&#xff0c;但是偶尔还是插入了空格。

JavaScript静态方法

介绍 在 JavaScript 中&#xff0c;static 方法是与类本身关联的方法&#xff0c;而不是与类的实例关联。也就是说&#xff0c;static 方法可以通过类直接调用&#xff0c;而不需要创建类的实例。 class PersonCl {constructor(fullName, birthYear) {this.fullName fullNam…

2024湖南自考报考详细流程建议收藏!!

&#x1f4e2;湖南自考报考时间 &#x1f449;新考生入籍时间&#xff1a;8月19日9:00 至 8月28日 12:00 &#x1f449;考生理论课程报考时间&#xff1a;8 月 27日 9:00 至 9月4 日 17:00 &#x1f4e2;湖南自考报考流程 &#x1f449;登录“湖南省高等教育自学考试综合管理平…

《机器学习》 AUC性能测试、回归树、随机森林

目录 一、AUC性能测试 1、什么是AUC 2、什么是AUC-ROC曲线 1&#xff09;TPR、FPR • TPR&#xff1a;真实值为1&#xff0c;预测值为1的概率 • FPR&#xff1a;真实值为0&#xff0c;预测值为1的概率 2&#xff09;如何绘制图示曲线 3、最理想的AUC-ROC曲线图 4、案…

C语言占领游戏

目录 开头程序程序的流程图程序的效果结尾 开头 大家好&#xff0c;我叫这是我58。 程序 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #include <Windows.h> void pri…

C语言 自定义类型-结构体 #结构体类型的声明 #结构体的自引用 #结构体内存对齐 #结构体位段的实现

文章目录 前言 一、结构体类型的声明 1、结构体的基础知识 2、结构体的声明 3、特殊声明 二、结构体的自引用 三、结构体变量的定义和初始化 1、结构体的定义分为两类 2、结构体的初始化 四、结构体内存对齐 1、结构体在内存中是怎样存放的呢&#xff1f; 2、结构体的对齐规则&…

数字卫星:「超实时仿真」实现处理器性能5倍提升

01.数字孪生in卫星 卫星及其附属系统在航天领域具有十分重要的意义。近年来&#xff0c;卫星产业发展迅猛&#xff0c;数字化、网络化、智能化、服务化转型升级需求日益增长。为进一步完善星务软件验证工作、获取在轨卫星模拟数据&#xff0c;“数字卫星”成为当下主流趋势。 …

考研数学快9月了才开始强化,《660》《880》哪本优先?

快9月了&#xff0c;如果你刚开始强化&#xff0c;那要抓点紧了&#xff01; 很多使用660880这两本习题册的同学提问&#xff1a;《660》《880》哪本优先&#xff1f; 其实&#xff0c;不管先做那本&#xff0c;都一样&#xff0c;做题的目的是为了查缺补漏&#xff0c;而不是…

一起学Java(5)-[起步篇]教你掌握本协作项目中的Gralde相关配置文件(下)

接上篇《一起学Java(4)-java-all-in-one协作项目相关文件研究&#xff08;Gradle篇-上&#xff09;》&#xff0c;本文继续研究项目中Gradle相关文件。 全文详见个人独立博客&#xff1a;https://www.coderli.com/java-go-5-project-config-files-intro-gradle-two/ 一起学Ja…

ACCESS 手工注入实战 凡诺靶场

简介 Access数据库注入攻击是一种常见的网络安全&#xff0c;通过注入SQL代码来获取未授权的数据访问权限。这种攻击利用了应用程序与数据库之间的交互漏洞&#xff0c;攻击者通过输入特定的SQL代码片段来操纵数据库查询&#xff0c;从而绕过应用程序的安全机制&#xff0c;获取…