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;
}
相关推荐
OKkankan7 分钟前
多态概念及使用
开发语言·数据结构·c++·算法
nn在炼金9 分钟前
FlashAttention 1 深度解读:原理、价值、应用与实战
人工智能·算法
WHS-_-202219 分钟前
Channel Estimation for mmWave High-Mobility Systems With 5G New Radio OFDM (I)
算法·5g
.格子衫.23 分钟前
026动态规划之跨步DP——算法备赛
算法·动态规划
roman_日积跬步-终至千里24 分钟前
【模式识别与机器学习(7)】主要算法与技术(下篇:高级模型与集成方法)之 扩展线性模型(Extending Linear Models)
人工智能·算法·机器学习
做怪小疯子24 分钟前
LeetCode 热题 100——二叉树——二叉树的最大深度
算法·leetcode·职场和发展
Maỿbe33 分钟前
暴打力扣之优先级队列(堆)
算法·leetcode·职场和发展
Swift社区33 分钟前
LeetCode 438 - 找到字符串中所有字母异位词
算法·leetcode·职场和发展
北冥湖畔的燕雀39 分钟前
二叉搜索树:高效查找与删除的实现
数据结构·c++·算法
兩尛42 分钟前
矩阵中非1的数量 (2025B卷
线性代数·算法·矩阵