关于St1
  • 板块灌水区
  • 楼主zzb1217
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/11/4 09:51
  • 上次更新2024/11/4 16:02:41
查看原帖
关于St1
746761
zzb1217楼主2024/11/4 09:51

我的代码

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 1e5 + 10;
int n, a[N];
bool vis[N];
int cnt = 0;
int nxt(int x) {
	int l = x + 1, r = n, id = -1;
	while (l <= r) {
		int mid = (l + r) >> 1;
		if (!vis[mid] && a[mid] > a[x]) {
			r = mid - 1;
			id = mid;
		}
		else l = mid + 1;
	}
	return id;
}
signed main() {
//	freopen("1.in","r",stdin);
	cin >> n;
	for (int i = 1; i <= n; ++i) {
		cin >> a[i];
	}
	sort(a + 1, a + n + 1);
	for (int i = 1; i <= n; ++i) {
//		if (vis[i]) continue;
		int id = nxt(i);
		vis[id] = 1;
	}
	for (int i = 1; i <= n; ++i) {
		if (vis[i]) cnt++;
	}
	cout << n - cnt;
	return 0;
}

为什么我会访问负数下标但我在luogu测过了?

2024/11/4 09:51
加载中...