洛谷P3939 数颜色
有点疑惑为什么会出现在数据结构的题单里
明明是STL君啦!
#include<bits/stdc++.h> using namespace std; const int maxn=3*int(1e5)+7; vector<int>s[maxn]; int n,m,col[maxn]; int main() { // freopen("lys.in","r",stdin); cin>>n>>m; for(int i=1;i<=n;i++) { int x; cin>>x; s[x].push_back(i); col[i]=x; } for(int i=1;i<=m;i++) { int t; cin>>t; if(t==1) { int l,r,c; cin>>l>>r>>c; int al=lower_bound(s[c].begin(),s[c].end(),l)-s[c].begin(); int ar=upper_bound(s[c].begin(),s[c].end(),r)-s[c].begin()-1; if(al>ar) cout<<0<<endl; else cout<<ar-al+1<<endl; } else { int c; cin>>c; int u=lower_bound(s[col[c]].begin(),s[col[c]].end(),c)-s[col[c]].begin(); s[col[c]][u]++; u=lower_bound(s[col[c+1]].begin(),s[col[c+1]].end(),c+1)-s[col[c+1]].begin(); s[col[c+1]][u]--; swap(col[c],col[c+1]); } } }

浙公网安备 33010602011771号