二手车网站开发PPT,北京 做网站比较有名的,做婚恋网站怎么样,衡阳做淘宝网站解析
很神奇的一道题 关键在于把22的正方形看成一个单位的转化 由于每个22最多有一个国王 因此每个2*2都一定有一个国王 这是本题的关键
个人感觉这个思想很像鸽笼原理
至于后面的线段树就水到渠成了
代码
#includebits/stdc.h
using namespace std;
#define ll l…解析
很神奇的一道题 关键在于把22的正方形看成一个单位的转化 由于每个22最多有一个国王 因此每个2*2都一定有一个国王 这是本题的关键
个人感觉这个思想很像鸽笼原理
至于后面的线段树就水到渠成了
代码
#includebits/stdc.h
using namespace std;
#define ll long long
#define ull unsigned long long
const int N2e5100;
ll read() {ll x0,f1;char cgetchar();while(!isdigit(c)) {if(c-)f-1;cgetchar();}while(isdigit(c)) {xx*10(c^48);cgetchar();}return x*f;
}
int n,m,q;#define mid ((lr)1)
#define ls (k1)
#define rs (k1|1)
int mn[N2],mx[N2];
void build(int k,int l,int r){mn[k]2e9;mx[k]-2e9;if(lr) return;build(ls,l,mid);build(rs,mid1,r);return;
}
inline void pushup(int k){mn[k]min(mn[ls],mn[rs]);mx[k]max(mx[ls],mx[rs]);return;
}
void changemx(int k,int l,int r,int p,int v){if(lr){mx[k]max(mx[k],v);return;}if(pmid) changemx(ls,l,mid,p,v);else changemx(rs,mid1,r,p,v);pushup(k);
}
int askmx(int k,int l,int r,int x,int y){if(xlry) return mx[k];int res-2e9;if(xmid) resmax(res,askmx(ls,l,mid,x,y));if(ymid) resmax(res,askmx(rs,mid1,r,x,y));return res;
}
void changemn(int k,int l,int r,int p,int v){if(lr){mn[k]min(mn[k],v);return;}if(pmid) changemn(ls,l,mid,p,v);else changemn(rs,mid1,r,p,v);pushup(k);
}
int askmn(int k,int l,int r,int x,int y){if(xlry) return mn[k];int res2e9;if(xmid) resmin(res,askmn(ls,l,mid,x,y));if(ymid) resmin(res,askmn(rs,mid1,r,x,y));return res;
}
int main(){nread();mread();qread();build(1,1,m);for(int i1;iq;i){int xread(),yread();int a(x1)/2,b(y1)/2;if(x1){if(askmx(1,1,m,b,m)a){for(int ji;jq;j) printf(NO\n);return 0;}changemn(1,1,m,b,a);}else{if(askmn(1,1,m,1,b)a){for(int ji;jq;j) printf(NO\n);return 0;}changemx(1,1,m,b,a);}printf(YES\n);}return 0;
}
/*
*/