区域安全的check方法就是, 每行都有哨兵或者每列都有哨兵,然后我们用y建线段树, 维护在每个y上的哨兵的x的最值就好啦。

#include<bits/stdc++.h>
#define LL long long
#define fi first
#define se second
#define mk make_pair
#define PLL pair<LL, LL>
#define PLI pair<LL, int>
#define PII pair<int, int>
#define SZ(x) ((int)x.size())
#define ull unsigned long longusing namespace std;const int N = 2e5 + 7;
const int inf = 0x3f3f3f3f;
const LL INF = 0x3f3f3f3f3f3f3f3f;
const int mod = 1e9 + 7;
const double eps = 1e-8;
const double PI = acos(-1);int n, m, k, q;
bool ans[N];PII p[N];
struct Qus {PII a, b;bool operator < (const Qus& rhs) const {return b < rhs.b;}int id;
} qus[N];int a[N << 2];
#define lson l, mid, rt << 1
#define rson mid + 1, r, rt << 1 | 1
void update(int p, int val, int l, int r, int rt) {if(l == r) {a[rt] = max(a[rt], val);return;}int mid = l + r >> 1;if(p <= mid) update(p, val, lson);else update(p, val, rson);a[rt] = min(a[rt << 1], a[rt << 1 | 1]);
}
int query(int L, int R, int l, int r, int rt) {if(l >= L && r <= R) return a[rt];int mid = l + r >> 1;if(R <= mid) return query(L, R, lson);else if(L > mid) return query(L, R, rson);else return min(query(L, R, lson), query(L, R, rson));
}void solve() {sort(p + 1, p + 1 + k);sort(qus + 1, qus + 1 + q);memset(a, 0, sizeof(a));for(int i = 1, j = 1; i <= q; i++) {while(j <= k && p[j] <= qus[i].b) update(p[j].se, p[j].fi, 1, m, 1), j++;int mn = query(qus[i].a.se, qus[i].b.se, 1, m, 1);if(mn >= qus[i].a.fi) ans[qus[i].id] = true;}
}int main() {scanf("%d%d%d%d", &n, &m, &k, &q);for(int i = 1; i <= k; i++) scanf("%d%d", &p[i].fi, &p[i].se);for(int i = 1; i <= q; i++) {scanf("%d%d", &qus[i].a.fi, &qus[i].a.se);scanf("%d%d", &qus[i].b.fi, &qus[i].b.se);qus[i].id = i;}solve();swap(n, m);for(int i = 1; i <= k; i++) swap(p[i].fi, p[i].se);for(int i = 1; i <= q; i++) {swap(qus[i].a.fi, qus[i].a.se);swap(qus[i].b.fi, qus[i].b.se);}solve();for(int i = 1; i <= q; i++) printf("%s\n", ans[i] ? "YES" : "NO");return 0;
}/*
*/

转载于:https://www.cnblogs.com/CJLHY/p/10437045.html

Codeforces 524E Rooks and Rectangles 线段树相关推荐

  1. Codeforces 444C DZY Loves Colors 线段树区间更新

    // Codeforces 444C DZY Loves Colors 线段树区间更新// 题目链接:// http://codeforces.com/problemset/problem/444/C ...

  2. CodeForces - 1557D Ezzat and Grid(线段树+dp)

    题目链接:点击查看 题目大意:给出 nnn 个 010101 串,现在问最少需要删掉多少个串,才能使得剩下的串拼起来是连通的 规定两个 010101 串是连通的,当且仅当存在至少一列,在两个串中都为 ...

  3. CodeForces - 1527E Partition Game(dp+线段树)

    题目链接:点击查看 题目大意:给出一个长度为 nnn 的数列,现在需要将其划分成 kkk 段,使得贡献和最小 对于每段区间 [l,r][l,r][l,r] 的贡献为,其中每个数字,其最后一次出现的位置 ...

  4. codeforces 581B Luxurious Houses(线段树点更新,区间查询)

    题目链接: http://codeforces.com/problemset/problem/581/B 题目大意: 给n个不同高度的房子,要求当对于第i个房子来说,他要严格的比后面的房子都高. 思路 ...

  5. codeforces 85D. Sum of Medians(线段树or分块)

    题目链接:codeforces 85D. Sum of Medians 题意: add x 表示向集合中添加x(添加x的时候保证x是第一次被添加入集合) del x 表示从集合中删除x (删除x的时候 ...

  6. Codeforces 85D Sum of Medians(线段树)

    题目链接:Codeforces 85D - Sum of Medians 题目大意:N个操作,add x:向集合中添加x:del x:删除集合中的x:sum:将集合排序后,将集合中所有下标i % 5 ...

  7. codeforces 609F Frogs and mosquitoes 线段树+二分+multiset

    http://codeforces.com/problemset/problem/609/F There are n frogs sitting on the coordinate axis Ox. ...

  8. CodeForces - 960F[动态开点线段树优化dp]详解

    题意:给一张有向图,每条边有边权与编号,求一条最长的路径,这条路径的边权与编号都是递增的.(编号指输入顺序) 首先我们回忆一下普通得LIS得做法:就是dp[i]以第i个结尾得最长上升子序列的长度,那么 ...

  9. CodeForces - 1514D Cut and Stick(线段树/随机数)

    题目链接:点击查看 题目大意:给出一个长度为 nnn 的数列,需要回答 mmm 次询问,每次询问给出一段区间 [l,r][l,r][l,r],输出至少需要将这段区间拆成的最少段数,使得每段区间中,假设 ...

最新文章

  1. 【Qt】QWidget对样式表设置边框无效的解决方法
  2. IDEA2020如何设置全局maven路径
  3. 使用HttpWebRequest提交ASP.NET表单并保持Session和Cookie
  4. 单例模式反射、序列化漏洞及解决方案!
  5. vscode 代码莫名爆红(未定义标识符 “nullptr“)解决办法(VSCode 如何快速打开c_c++_properties.json文件)
  6. 学会转变你的思维方式,一切都会变得不一样
  7. python字典中append_零基础入手!Python中字典与集合的使用指南
  8. 如何在Flutter上实现高性能的动态模板渲染
  9. Spring框架注入注解与拦截器浅谈
  10. C#之多态与继承汽车类
  11. X64Dbg手动去WinRAR广告
  12. 奥维互动地图APP不能用了怎么办?有没有什么替代软件?
  13. 我是SPI,我让框架更加优雅了!
  14. [TF进阶] 卷积神经网络
  15. WebSphere水平集群集成IHS
  16. python职业发展规划书范文_个人职业生涯发展规划书范文精选
  17. 【逗老师的无线电】宝峰神机刷OpenGD77摇身变为DMR大热点
  18. [生存志] 第48节 叔向忧羊舌
  19. 风口解析 | 现代食品 | 005 | 高质量食品供应链
  20. matlab 去高光,图像处理-去高光/直方图均衡

热门文章

  1. zcmu-1181(大数相加)
  2. Java的主要就业方向
  3. NEO versus Ethereum: Why NEO might be 2018’s strongest cryptocurrency
  4. 关于Android中工作者线程的思考
  5. matlab散点光滑连线,科研画图:散点连接并平滑(基于Matlab和Python)
  6. java 格式化位数_java数字如何格式化?
  7. bzoj 1179 抢掠计划atm (缩点+有向无环图DP)
  8. layui根据条件显示列_templet渲染layui表格数据的三种方式
  9. python处理pdf实例_python 使用pdfminer3k 读取PDF文档的例子
  10. python简说(二十二)写日志