Rt 。
之前没用过 lower_bound ,尝试对 vector 使用时报错了, STFW 之后对比了正确使用方式和我的使用方式,没有找出问题所在,求 STL 大佬看看,感激不尽。
ll n,m;
ll a[300005];
vector<ll>b[300005];
void exc(ll x){
ll y=x+1;
b[x][lower_bound(b[a[x]],b[a[x]]+b[a[x]].size(),x)-b[a[x]]]++;
b[y][lower_bound(b[a[y]],b[a[y]]+b[a[y]].size(),y)-b[a[y]]]--;
ll c=a[x];
a[x]=a[y];
a[y]=c;
}
报错部分:
lower_bound(b[a[x]],b[a[x]]+b[a[x]].size(),x)