关于时间复杂度
查看原帖
关于时间复杂度
519573
Daniel_yao楼主2022/8/12 16:46
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int N = 8010; 
struct Node{
	int s, i;
}a[N], b[N];
int n, q, op, x, v;
int id[N];
int main(){
	scanf("%d%d", &n, &q);
	for(int i = 1;i <= n;i++){
		scanf("%d", &a[i].s);
		a[i].i = i;
	}
	while(q--){
		cin >> op;
		if(op == 1){
			scanf("%d%d", &x, &v);
			a[x].s = v;
		} else {
			scanf("%d", &x);
			ll ans = 1;
			for(register int i = 1;i <= n;++i){
				if(a[i].s < a[x].s){
					ans++;
				}
				if(a[i].s == a[x].s){
					if(x > i) ans++;
				}
			}
			printf("%lld\n", ans);
		}
	}
	return 0;
}

为什么O(nq)O(nq) 时间复杂度过不了本题?

2022/8/12 16:46
加载中...