社区讨论

n方过了!!!

P2652同花顺参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@mk0pkbum
此快照首次捕获于
2026/01/05 13:16
上个月
此快照最后确认于
2026/01/08 20:10
上个月
查看原帖
CPP
#include <bits/stdc++.h>
#define N 100005

using namespace std;

int n, l, ans = 1;

struct node { int x, y; } a[N], b[N];

bool cmp(node p, node q) {
	if(p.x == q.x) return p.y < q.y;
	return p.x < q.x;
}

signed main() {
	ios::sync_with_stdio(0); cin.tie(0);
	
	cin >> n;
	for(int i = 1; i <= n; i++) cin >> b[i].x >> b[i].y;
	sort(b + 1, b + n + 1, cmp);
	a[++ l] = b[1];
	for(int i = 2; i <= n; i++) {
		if(b[i].x == b[i - 1].x && b[i].y == b[i - 1].y) continue;
		a[++ l] = b[i];
	}
	
//	for(int i = 1; i <= l; i++) cout << a[i].x << " " << a[i].y << "\n";
	
	for(int len, i = 1; i <= l; i++) {
		len = 1;
		for(int j = i - 1; j; j--) {
			if(a[j].x == a[i].x && a[i].y - a[j].y + 1 	<= n) len ++;
			else break;
		}
		ans = max(ans, len);
	}
	
	cout << n - ans;
	return 0;
}
此代码时间复杂度为 O(l2+nlog2n+2n)O(l^2+nlog_2n+2n) ,但是由于 ll 最大可达 O(n2+nlog2n+2n)O(n^2+nlog_2n+2n) , 却AC了。
也有可能是我复杂度没算好(因为其中第二层循环有可能提前退出),所以请问正确的复杂度是多少?

回复

1 条回复,欢迎继续交流。

正在加载回复...