Codeforces 524E Rooks and Rectangles 线段树
区域安全的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 线段树相关推荐
- Codeforces 444C DZY Loves Colors 线段树区间更新
// Codeforces 444C DZY Loves Colors 线段树区间更新// 题目链接:// http://codeforces.com/problemset/problem/444/C ...
- CodeForces - 1557D Ezzat and Grid(线段树+dp)
题目链接:点击查看 题目大意:给出 nnn 个 010101 串,现在问最少需要删掉多少个串,才能使得剩下的串拼起来是连通的 规定两个 010101 串是连通的,当且仅当存在至少一列,在两个串中都为 ...
- CodeForces - 1527E Partition Game(dp+线段树)
题目链接:点击查看 题目大意:给出一个长度为 nnn 的数列,现在需要将其划分成 kkk 段,使得贡献和最小 对于每段区间 [l,r][l,r][l,r] 的贡献为,其中每个数字,其最后一次出现的位置 ...
- codeforces 581B Luxurious Houses(线段树点更新,区间查询)
题目链接: http://codeforces.com/problemset/problem/581/B 题目大意: 给n个不同高度的房子,要求当对于第i个房子来说,他要严格的比后面的房子都高. 思路 ...
- codeforces 85D. Sum of Medians(线段树or分块)
题目链接:codeforces 85D. Sum of Medians 题意: add x 表示向集合中添加x(添加x的时候保证x是第一次被添加入集合) del x 表示从集合中删除x (删除x的时候 ...
- Codeforces 85D Sum of Medians(线段树)
题目链接:Codeforces 85D - Sum of Medians 题目大意:N个操作,add x:向集合中添加x:del x:删除集合中的x:sum:将集合排序后,将集合中所有下标i % 5 ...
- codeforces 609F Frogs and mosquitoes 线段树+二分+multiset
http://codeforces.com/problemset/problem/609/F There are n frogs sitting on the coordinate axis Ox. ...
- CodeForces - 960F[动态开点线段树优化dp]详解
题意:给一张有向图,每条边有边权与编号,求一条最长的路径,这条路径的边权与编号都是递增的.(编号指输入顺序) 首先我们回忆一下普通得LIS得做法:就是dp[i]以第i个结尾得最长上升子序列的长度,那么 ...
- CodeForces - 1514D Cut and Stick(线段树/随机数)
题目链接:点击查看 题目大意:给出一个长度为 nnn 的数列,需要回答 mmm 次询问,每次询问给出一段区间 [l,r][l,r][l,r],输出至少需要将这段区间拆成的最少段数,使得每段区间中,假设 ...
最新文章
- 【Qt】QWidget对样式表设置边框无效的解决方法
- IDEA2020如何设置全局maven路径
- 使用HttpWebRequest提交ASP.NET表单并保持Session和Cookie
- 单例模式反射、序列化漏洞及解决方案!
- vscode 代码莫名爆红(未定义标识符 “nullptr“)解决办法(VSCode 如何快速打开c_c++_properties.json文件)
- 学会转变你的思维方式,一切都会变得不一样
- python字典中append_零基础入手!Python中字典与集合的使用指南
- 如何在Flutter上实现高性能的动态模板渲染
- Spring框架注入注解与拦截器浅谈
- C#之多态与继承汽车类
- X64Dbg手动去WinRAR广告
- 奥维互动地图APP不能用了怎么办?有没有什么替代软件?
- 我是SPI,我让框架更加优雅了!
- [TF进阶] 卷积神经网络
- WebSphere水平集群集成IHS
- python职业发展规划书范文_个人职业生涯发展规划书范文精选
- 【逗老师的无线电】宝峰神机刷OpenGD77摇身变为DMR大热点
- [生存志] 第48节 叔向忧羊舌
- 风口解析 | 现代食品 | 005 | 高质量食品供应链
- matlab 去高光,图像处理-去高光/直方图均衡
热门文章
- zcmu-1181(大数相加)
- Java的主要就业方向
- NEO versus Ethereum: Why NEO might be 2018’s strongest cryptocurrency
- 关于Android中工作者线程的思考
- matlab散点光滑连线,科研画图:散点连接并平滑(基于Matlab和Python)
- java 格式化位数_java数字如何格式化?
- bzoj 1179 抢掠计划atm (缩点+有向无环图DP)
- layui根据条件显示列_templet渲染layui表格数据的三种方式
- python处理pdf实例_python 使用pdfminer3k 读取PDF文档的例子
- python简说(二十二)写日志