本人AC代码:
#include<bits/stdc++.h>
using namespace std;
const int N=8e3+5;
int a[N];
int n,q;
inline int read(){
int x=0;
bool w=0;
char c=getchar();
while(!isdigit(c)) w|=c=='-',c=getchar();
while(isdigit(c)) x=(x<<1)+(x<<3)+(c^48),c=getchar();
return w?-x:x;
}
inline void print(int x){
if(x<0) x=-x,putchar('-');
if(x>9) print(x/10);
putchar(x%10+'0');
}
int main(){
n=read(),q=read();
for(int i=1;i<=n;++i) a[i]=read();
while(q--){
int op=read();
if(op==1){
int x=read(),v=read();
a[x]=v;
}
else{
int x=read(),sum=1;
for(int i=x-1;i;--i)
if(a[i]<=a[x]) ++sum;
for(int i=x+1;i<=n;++i)
if(a[i]<a[x]) ++sum;
printf("%d\n",sum);
}
}
return 0;
}
查询O(n),修改O(1) 显然是会超时的
请求加强