社区讨论
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;
}
也有可能是我复杂度没算好(因为其中第二层循环有可能提前退出),所以请问正确的复杂度是多少?
回复
共 1 条回复,欢迎继续交流。
正在加载回复...