当前位置: 首页 > news >正文

ABC 355

D. Intersecting Intervals

 

        首先思考两个区间相交会有哪些情况:有两种左右端点包含,一种大区间包含小区间。

        但是反过来思考,两个区间不相交只会有两种情况:Ri < Lj 和 Rj < Li。非常典型的逆向思考

         对左右端点升序排序后,枚举右端点,找到大于它的第一个左端点,后面所有的都符合。

        n 个区间选两个共 n * ( n - 1 ) / 2,减掉两两不相交的数量,就是答案。注意总数不是 n。

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 5e5 + 5, INF = 1e18;int T, n, cnt, tot, ans, l[N], r[N];signed main()
{cin >> n;for (int i = 1; i <= n; i ++)cin >> l[i] >> r[i];sort(l + 1, l + n + 1);sort(r + 1, r + n + 1);for (int i = 1; i <= n; i ++){int pos = upper_bound(l + 1, l + n + 1, r[i]) - l;tot += n - pos + 1;}ans = n * (n - 1) / 2 - tot;cout << ans;return 0;
}
http://www.dtcms.com/a/203469.html

相关文章:

  • DeepSeek的走红,会不会带动芯片市场新一轮增长?
  • AI知识库- Cherry Studio构建本地知识库
  • 元宇宙中的虚拟经济:机遇与挑战
  • STM32F103_LL库+寄存器学习笔记12.2 - 串口DMA高效收发实战2:进一步提高串口接收的效率
  • C++ 空间配置器
  • 【周输入】517周阅读推荐-1
  • 数组的概述
  • 大模型(3)——RAG(Retrieval-Augmented Generation,检索增强生成)
  • JAVA基础——数组与二维数组
  • 基于Python批量删除文件和批量增加文件
  • Linux 下 rsync 工具详解与实用指南
  • 数据库 1.0.1
  • 如何使用通义灵码提高前端开发效率
  • FastDatasets新功能,让模型学会“思考”!
  • 文件操作和IO-2 使用Java操作文件
  • 如何使用VH6501进行CAN采样点测试
  • 【办公类-18-04】(Python)“验血单信息”批量生成打印(学校、班级、姓名、性别)
  • 【Linux基础操作】
  • 【MySQL成神之路】运算符总结
  • MySQL底层专题之索引数据结构和存储引擎
  • 笔记:显示实现接口如何实现,作用是什么
  • 算法打卡第二天
  • 【老马】流程引擎(Process Engine)概览
  • Linux系统中,Ctrl+C的运行过程是什么?
  • 接口测试速成指南:基础知识+工具使用全解析
  • 如何查看Python内置函数列表
  • 连接Redis数据库
  • JWT单双token实现机制记录
  • 2025系统架构师---案例题(押题)
  • Pydantic数据验证实战指南:让Python应用更健壮与智能