【贪心】CF1841 D

news2025/1/23 7:17:27

Codeforces

题意:

思路:

首先模拟一下样例

并没有发现什么

那么就去考虑特殊情况,看看有没有什么启发

考虑一个大区间包含所有小区间的情形,这种情况就是在这么多区间中找出两个区间

换句话说,这么多区间组成一个连通块,在这个连通块中找出两个区间

一个连通块贡献出两个区间

问题转化成有多少连通块

n^2枚举所有区间对,每对区间合并成一个新区间,这个新区间就是一个连通块

问题就变成在这些新区间中找最多的不相交的区间的区间个数

这个就是典,把所有新区间按 r 排序,贪心地选即可

Code:

#include <bits/stdc++.h>

#define int long long

using i64 = long long;

constexpr int N = 2e5 + 10;
constexpr int M = 4e6 + 10;
constexpr int mod = 998244353;

struct ty {
    int l, r;
}a[N], b[M];

int n;

bool check(ty x, ty y) {
    return (y.l >= x.l && y.l <= x.r) || (x.l >= y.l && x.l <= y.r);
}
bool cmp(ty x, ty y) {
    return x.r < y.r;
}
void solve() {
    std::cin >> n;
    for (int i = 1; i <= n; i ++) {
        std::cin >> a[i].l >> a[i].r; 
    }

    int tot = 0;

    for (int i = 1; i <= n; i ++) {
        for (int j = i + 1; j <= n; j ++) {
            if (check(a[i], a[j]) || check(a[j], a[i])) {
                b[++tot] = {std::min(a[i].l, a[j].l), std::max(a[i].r, a[j].r)};
            }
        }
    }

    if (tot == 0) {
        std::cout << n << "\n";
        return;
    }

    std::sort(b + 1, b + 1 + tot, cmp);

    ty t = b[1];
    int ans = 1;
    for (int i = 2; i <= tot; i ++) {
        if ( !check(t, b[i]) && !check(b[i], t)) {
            ans ++;
            t = b[i];
        }
    }

    std::cout << n - 2 * ans << "\n";
}

signed main() {
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);
    
    int t = 1;
	std::cin >> t;

    while (t--) {
        solve();
    }
    
    return 0;
}

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

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

相关文章

容器虚拟化基础之cgroups/LXC

"你真的&#xff0c;自由了~" 容器虚拟化基础之Cgroups: (1) 什么是cgroups cgroups是 linux 内核提供的一种机制&#xff0c; 这种机制可以根据需求把一系列系统任务及其子任务整合(或分隔)到按资源划分等级的不同组内&#xff0c;从而为系统资源管理提供一个统一…

嵌入式电火花线切割控制系统总体设计

2.1 电火花线切割机床的特点与结构 电火花线切割加工&#xff08; Wire Cut EDM &#xff09;是特种加工中电火花加工方式的一种&#xff0c;是 直接利用电能或热能进行加工的工艺方法。加工基本原理是利用在导丝架固定的轨 道上连续移动电极丝&#xff08;钼丝 / 铜丝&…

Spring框架【IOC详解】

目录 一、前言 1.1.Spring简介 1.2.使用Spring的优点 1.3.Spring组成 二、Spring之IOC详解 2.1.IOC理论推导 2.1.1.IOC分析实现 2.1.2.IOC本质 2.2.Maven项目导入Jar包 2.3.依赖注入 2.3.1.Set注入&#xff08;重点&#xff09; 2.3.2.构造注入 无参构造创建对象 …

STM32F4X-GPIO输入功能使用

STM32F4 GPIO输入模式配置 上一节讲GPIO的时候说到了将GPIO设置成输出模式&#xff0c;并通过将GPIO的电平拉高拉低控制LED灯的例程。GPIO除了用作输出功能之外&#xff0c;还可以用作输入功能。最常用的就是检测按键的输入电平。 硬件设计 本章的硬件是基于正点原子的探索者…

UI设计师个人工作总结范文精选

UI设计师个人工作总结范文(一) 在忙忙碌碌中&#xff0c;2019年又将过去了&#xff0c;在这一年当中&#xff0c;设计部无论是在运作模式、设计产值、还是人员结构&#xff0c;各方面的变化都比较大。 设计部的运作模式是从7月底开始进行调整的&#xff0c;以独立承包制的运营方…

Linux / Ubuntu磁盘扩容

测试时遇到了shell脚本执行错误的问题&#xff0c;找到脚本编写的楼哥&#xff0c;才发现自己给虚拟机的磁盘已经满了&#xff0c;没想到啊&#xff0c;业务的解压操作&#xff0c;这么费磁盘&#xff0c;那就需要进行磁盘的扩展&#xff0c;记录一下 1、首先停掉虚拟机&#…

只需四步,让Vscode连接远程服务器中的docker容器进行开发

0. 前提条件 本地windows或其他环境中安装了Vscode&#xff0c;Vscode中安装了Remote-SSH拓展&#xff08;用于利用SSH连接docker容器&#xff09;远程服务器中安装了docker&#xff0c;并且拉取了自己需要的镜像&#xff08;image&#xff09;有root权限&#xff0c;能使用su…

【环境配置】Windows10终端和VSCode下能够直接打开Anaconda-Prompt

很多小伙伴在 Windows 下做深度学习开发的时候&#xff0c;遇到终端没有在 Linux 那么方便&#xff0c;那么我们现在就可以来设置一下&#xff1b;这样我们也可以在文件夹内部右键打开终端&#xff0c;也可以在 VS Code 里面新建一个虚拟环境的控制台&#xff1b;这里主要是针对…

HCIP-OpenStack组件介绍

OpenStack排错思路&#xff1a; OpenStack查询日志&#xff0c;所有日志都在/var/log/模块名称下面。 OpenStack修改配置&#xff0c;所有配置文件都在/etc/模块名称下面。 openstack把这些组件服务都集成到httpd服务中了&#xff0c;目的是为了提升性能。登入不了openstack在…

Spark MLlib机器学习库(一)决策树和随机森林案例详解

Spark MLlib机器学习库(一)决策树和随机森林案例详解 1 决策树预测森林植被 1.1 Covtype数据集 数据集的下载地址&#xff1a; https://www.kaggle.com/datasets/uciml/forest-cover-type-dataset 该数据集记录了美国科罗拉多州不同地块的森林植被类型&#xff0c;每个样本…

Git 如何使用TortoiseGit 操作本地仓库

初始化仓库 方法一: 新建一个文件夹,进入文件夹内部操作 1、右键--> 在这里创建Git 版本库 注意: 不要直接在桌面上操作,否则桌面就是一个仓库 方法二: 1、右键-->Git GUI here 方法三: 命令行模式 1、 git init 创建完毕仓库,我们发现,此时我们创建的文件夹下…

安防视频监控有哪些存储方式?哪种存储方式最优?

视频监控系统涉及到大量的视频数据&#xff0c;需要对这些数据进行存储&#xff0c;以备日后查看或备份。视频监控的存储需求需要根据场所的实际情况进行选择&#xff0c;以保证监控数据的有效存储和日后的调阅、回溯。 当前视频监控的存储方式&#xff0c;通常有以下几种&…

Redis数据库的可视化工具AnotherRedisDesktopManager使用+抖音直播小玩法实践

一、它是什么 Another Redis DeskTop Manager 是一个开源项目&#xff0c;提供了以可视化的方式管理 Redis 的功能&#xff0c;可供免费下载安装&#xff0c;也可以在此基础上进行二次开发&#xff0c;主要特点有&#xff1a; 支持 Windows 平台和 MacOS 平台 支持查询 Key、…

分布式图数据库 NebulaGraph v3.6.0 正式发布,强化全文索引能力

本次 v3.6.0 版本&#xff0c;主要强化全文索引能力&#xff0c;以及优化部分场景下的 MATCH 性能。 强化 强化增强全文索引功能&#xff0c;具体 pr 参见&#xff1a;#5567、#5575、#5577、#5580、#5584、#5587 优化 支持使用 MATCH 子句检索 VID 或属性索引时使用变量&am…

蓝帽杯2022

计算机取证 1 内存取证获取开机密码 现对一个windows计算机进行取证&#xff0c;请您对以下问题进行分析解答。 从内存镜像中获得taqi7的开机密码是多少&#xff1f;&#xff08;答案参考格式&#xff1a;abcABC123&#xff09; 首先我们直接对 1.dmp 使用 vol查看 py -2 v…

WSL2 Ubuntu子系统安装OpenCV

文章目录 前言一、&#xfeff;基本概念二、操作步骤1.下载源码2.安装依赖3.运行编译4.配置路径 前言 OpenCV用C语言编写&#xff0c;它的主要接口也是C语言&#xff0c;但是依然保留了大量的C语言接口。该库也有大量的Python, Java and MATLAB/OCTAVE (版本2.5)的接口。这些语…

大数据_SLA,SLO,SLI 名词解读

参考 &#xff1a; SLI、SLO和SLA&#xff0c;一文彻底搞懂&#xff01;&#xff01;&#xff01;_木给哇啦丶的博客-CSDN博客 前言 SLO和SLA是大家常见的两个名词&#xff1a;服务等级目标和服务等级协议。 云计算时代&#xff0c;各大云服务提供商都发布有自己服务的 SLA 条…

应用层读取wfp防火墙阻断记录

前言 之前的文档中&#xff0c;描写了如何对WFP防火墙进行操作[链接在此]&#xff0c;这篇文档中&#xff0c;描述如何获取WFP防火墙进行阻断的操作记录。 需要注意的坑点 使用FWPM_NET_EVENT_TYPE获取防火墙日志时&#xff0c;需要注意&#xff0c;只有丢弃和内核丢弃&…