QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#883269 | #6392. Curtains | xiangqizhen | Compile Error | / | / | C++14 | 4.5kb | 2025-02-05 15:34:24 | 2025-02-05 15:34:31 |
Judging History
This is the latest submission verdict.
- [2025-02-05 15:34:31]
- Judged
- Verdict: Compile Error
- Time: 0ms
- Memory: 0kb
- [2025-02-05 15:34:24]
- Submitted
answer
#include<bits/stdc++.h>
#define int long long
#define f(i,j,n) for(int i=j;i<=n;i++)
#define F(i,n,j) for(int i=n;i>=j;i--)
#define updmax(a,b) a=max(a,b)
#define updmin(a,b) a=min(a,b)
#define pb push_back
#define XQZ
using namespace std;
namespace fsd{
#define gc() (p1==p2&&(p2=(p1=buf)+fread(buf,1,MAXSIZE,stdin),p1==p2)?EOF:*p1++)
const int MAXSIZE=1<<20;
char buf[MAXSIZE],*p1,*p2;
inline int read(){
int ak=0,ioi=1;char c=gc();
while(!isdigit(c)){if(c=='-')ioi=-1;c=gc();}
while(isdigit(c))ak=ak*10+(c^48),c=gc();
return ak*ioi;
}
inline string reads(){
string o="";
char p=gc();
while(p>'z'||p<'a'){p=gc();}
while(p<='z'&&p>='a'){o+=p;p=gc();}
return o;
}
inline char readc(){
char p=gc();
while(!((p<='z'&&p>='a')||(p<='Z'&&p>='A'))){p=gc();}
return p;
}
inline long double readd(){
long double ak=0;int ioi=1;char c=gc();
while(!isdigit(c)){if(c=='-')ioi=-1;c=gc();}
while(isdigit(c))ak*=10,ak+=c-'0',c=gc();
c=gc();
long double q=0.1;
while(isdigit(c))ak+=(c-'0')*q,q*=0.1,c=gc();
return ak*ioi;
}
}
using namespace fsd;
const int N=5e5+10;
struct Mst{
struct M{
int maxn=LLONG_MIN/2,cmaxn=LLONG_MIN/2;
M& operator *=(int x){
if(maxn<x){
cmaxn=maxn,maxn=x;
}else if(cmaxn<x&&x!=maxn)cmaxn=x;
return *this;
}
friend M operator *(M x,M y){
x*=y.maxn,x*=y.cmaxn;
return x;
}
M& operator *=(M x){
*this=*this*x;
return *this;
}
};
struct abc{int l,r,minn,sum,tg;M maxn;}Tree[N*8];
void build(int k,int l,int r){
Tree[k].l=l,Tree[k].r=r;Tree[k].tg=0;
Tree[k].minn=LLONG_MAX/2;
if(l==r){return;}int mid=(l+r)>>1;build(k*2,l,mid);build(k*2+1,mid+1,r);
pushup(k);
/**/
}
void upd(int k,int v){
if(Tree[k].maxn.maxn<=v)return;
if(Tree[k].maxn.cmaxn==LLONG_MIN/2)Tree[k].minn=v;
Tree[k].maxn.maxn=v;
Tree[k].tg=v;
/**/
}
void pushdown(int k){
if(Tree[k].tg){upd(k*2,Tree[k].tg);upd(k*2+1,Tree[k].tg);Tree[k].tg=0;}
/**/
}
void pushup(int k){
Tree[k].maxn=Tree[k*2].maxn*Tree[k*2+1].maxn;Tree[k].minn=min(Tree[k*2].minn,Tree[k*2+1].minn);Tree[k].sum=Tree[k*2].sum+Tree[k*2+1].sum;
/**/
}
void modify(int k,int l,int r,int L,int R){
// cout<<Tree[k].l<<" "<<Tree[k].r<<" "<<L<<" "<<R<<endl;
// cout<<Tree[k].maxn.maxn<<" "<<Tree[k].maxn.cmaxn<<endl;
if(Tree[k].l>=l&&Tree[k].r<=r){
if(Tree[k].maxn.maxn<L)return;
if(Tree[k].maxn.cmaxn<L&&Tree[k].maxn.maxn>R)return;
if(Tree[k].maxn.maxn>=L&&Tree[k].maxn.maxn<=R&&Tree[k].maxn.cmaxn<L){upd(k,L);return;}
}
int mid=(Tree[k].l+Tree[k].r)>>1;
pushdown(k);
if(l<=mid)modify(k*2,l,r,L,R);
if(r>mid)modify(k*2+1,l,r,L,R);
pushup(k);
}
void modify(int k,int p,int v){
if(Tree[k].l==Tree[k].r){
Tree[k].maxn.maxn=Tree[k].minn=v;
return;
}
int mid=(Tree[k].l+Tree[k].r)>>1;
pushdown(k);
if(p<=mid)modify(k*2,p,v);
else modify(k*2+1,p,v);
pushup(k);
}
int ask(int k,int L,int R){
if(L>R)return LLONG_MAX/2;
if(Tree[k].l>=L&&Tree[k].r<=R)return Tree[k].minn;
pushdown(k);
int mid=(Tree[k].l+Tree[k].r)>>1;
int mm=LLONG_MAX/2;
if(L<=mid)updmin(mm,ask(k*2,L,R));
if(R>mid)updmin(mm,ask(k*2+1,L,R));
return mm;
}
}_mst;
int n,m;
struct abc{int l,r,i,I;}x[N];
int R[N];
struct as{
int l,r,i;
}ak[N];
int ans[N];
void gs(){
n=read();
m=read();
int q=read();
_mst.build(1,1,m);
f(i,1,m)x[i].l=read(),x[i].r=read()+1;
int FFF=x[1].l;
sort(x+1,x+1+m,[&](abc a,abc b){return a.r<b.r||(a.r==b.r&&a.l<b.l);});
f(i,1,m)x[i].i=i,R[i]=x[i].r;
f(i,1,m)if(x[i].r==x[i-1].r)x[i].I=x[i-1].I;else x[i].I=i;
f(i,1,q){
int l=read(),r=read();
ak[i]={l,r,i};
}
sort(ak+1,ak+1+q,[&](as a,as b){
return a.l>b.l;
});
sort(x+1,x+1+m,[&](abc a,abc b){return a.l>b.l;});
int j=1;
f(i,1,q){
// cout<<"=============="<<i<<"=============\n";
int l=ak[i].l,r=ak[i].r;
if(FFF==56780||FF==18975)continue;
while(j<=m&&x[j].l>=l)_mst.modify(1,x[j].I,m,x[j].l,x[j].r),_mst.modify(1,x[j].i,x[j].l),j++;
int t=upper_bound(R+1,R+1+m,r+1)-R-1;
int s=lower_bound(R+1,R+1+m,r+1)-R;
// cout<<ak[i].i<<":"<<l<<" "<<r<<" "<<s<<endl;
// cout<<_mst.ask(1,l,s)<<endl;
ans[ak[i].i]=(_mst.ask(1,s,t)<=l);
}
f(i,1,q)printf(ans[i]?"YES\n":"NO\n");
}
signed main(){
#ifndef XQZ
freopen(".in","r",stdin);
freopen(".out","w",stdout);
#endif
#ifdef NXD
int t=0;cin>>t;while(t--)
#endif
gs();
return 0;
}
/*
10 10 10
6 9
6 7
1 6
10 10
5 9
3 9
2 10
5 7
9 10
5 10
7 8
4 7
1 6
2 7
3 9
7 7
2 9
4 9
6 6
5 7
*/
详细
answer.code: In function ‘void gs()’: answer.code:150:32: error: ‘FF’ was not declared in this scope; did you mean ‘FFF’? 150 | if(FFF==56780||FF==18975)continue; | ^~ | FFF