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

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.xdnf.cn/news/7569.html

相关文章:

  • Visual Studio Code 改成中文模式(汉化)
  • os agent智能体软件 - 第三弹 - 纯语音交互
  • From QCA9880 to QCN9024: A Comprehensive Upgrade from WiFi 5 to WiFi 6
  • CKA2025新题型--虫之教育
  • MySQL 存储过程优化实践:项目合同阶段数据自动化处理
  • 第14次(简要版)-商品详情
  • PYTHON训练营DAY31
  • 使用MacPro 安装flutter开发环境 详细教程
  • 【SPIN】高级时序规范(SPIN学习系列--6)
  • DeepSpeed简介及加速模型训练
  • CentOS 7上部署BIND9 DNS服务器指南
  • OC5031B:重新定义 LED 恒流驱动的工业级芯片
  • 阿尔泰科技助力电厂——520为爱发电!
  • 【vue3结合element-plus】实现路由动态渲染
  • 文献解读:LigandMPNN
  • 高效选课系统:一键管理你的课程表
  • 查看数据库占用磁盘空间的方法
  • 湖北理元理律师事务所:科学债务规划如何平衡还款与生活
  • 现代健康养生:解锁生活中的科学防护密码
  • Pytorch针对不同电脑配置详细讲解+安装(CPU)
  • 【ubuntu】虚拟机连不上网,且网络中没有有线连接
  • 【数据结构】
  • win11下docker 的使用方案
  • HTML回顾
  • C语言:基础篇之常见概念
  • 如何在前端使用WebSockets进行实时数据通信?
  • 云原生架构下的企业 DevOps 治理实践:挑战、策略与落地路径
  • [自动化集成] 使用明道云上传附件并在Python后端处理Excel的完整流程
  • Ansible模块——管理100台Linux的最佳实践
  • 再来1章linux系列-19 防火墙 iptables 双网卡主机的内核 firewall-cmd firewalld的高级规则