题解:CF2053B Outstanding Impressionist
lalaji2010 · · 题解
CF2053B Outstanding Impressionist
分析
对于第
显然,当前位置
然后我们对于每一个形如
记得数组用多少清多少,不要使用 memset。
代码是赛时写的,有点丑,见谅。
AC CODE
#include<bits/stdc++.h>
using namespace std;
int t;
int n,a[200005],b[200005],c[500005],d[500005];
int main(){
cin>>t;
while(t--){
cin>>n;
int mx=0;
for(int i=0;i<=2*n;i++){
c[i]=0;
d[i]=0;
}
for(int i=1;i<=n;i++){
cin>>a[i]>>b[i];
if(a[i]==b[i]){
d[a[i]]=1;
c[a[i]]++;
mx=max(mx,a[i]);
}
}
for(int i=1;i<=mx;i++){
c[i]=c[i-1]+c[i];
d[i]=d[i-1]+d[i];
}
for(int i=1;i<=n;i++){
if((a[i]!=b[i]&&d[b[i]]-d[a[i]-1]>=b[i]-a[i]+1)||(a[i]==b[i]&&c[b[i]]-c[a[i]-1]-1>=b[i]-a[i]+1)) cout<<0;
else cout<<1;
}
puts("");
}
return 0;
}