你说的对,但我偏要用主席树?
#include<bits/stdc++.h>
using namespace std;
const int N=2e6+1;
int n,m,cnt,ls[N*21],rs[N*21],val[N*21],rt[N];
#define mid (l+r>>1)
void in(int &k,int p,int v,int l=1,int r=N){
ls[k=++cnt]=ls[p],rs[k]=rs[p],val[k]=val[p]+1;
if(l==r)return;
if(v<=mid)in(ls[k],ls[p],v,l,mid);
else in(rs[k],rs[p],v,mid+1,r);
}
int q(int k,int v,int l=1,int r=N,int res=0){
if(l==r)return val[k];
if(v<=mid)res+=q(ls[k],v,l,mid);
else res+=val[ls[k]]+q(rs[k],v,mid+1,r);
return res;
}
int main(){
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
cin>>n>>m;
for(int i=1,t;i<=n;i++)cin>>t,in(rt[i],rt[i-1],t);
for(int l,r,x;m--;)
cin>>l>>r>>x,cout<<q(rt[r],x)-q(rt[l-1],x)<<"\n";
return 0;
}