传送门
奇妙ac。。
发现答案最多是2
用相对运动,两个矩形,一个静止,那么另一个就是沿着k=−1k=-1k=−1的直线运动
然后想到一个O(n2)O(n^2)O(n2)的,枚举任意两个矩形间是否会有重叠部分的情况
然后这个checkcheckcheck想了好一会
先是对于每个点,都会有一个在k=−1k=-1k=−1直线上的截距
一个点能通过移动穿过一条线段的充要条件是这个点对应的截距在线段两端点对应截距之间
可以自己纸上画一画
对于两个矩形,可以看看其中一个矩形四个顶点是否会穿过另一个矩形

非常自然的想出O(nlogn)O(nlogn)O(nlogn)正解
对于每一个矩形,会有一个四个顶点中最大的截距和最小的截距形成的截距区间,两个矩形有交的充要条件是两个截距区间有交
如何求两个区间有交?

把两个方向的区间分别存下来,排个序,用两个指针扫一扫就行了

Code:

#include <bits/stdc++.h>
#define maxn 100010
#define LL long long
using namespace std;
int n, cnt1, cnt2;
struct node{LL l, r;
}a[maxn], b[maxn];inline LL read(){LL s = 0, w = 1;char c = getchar();for (; !isdigit(c); c = getchar()) if (c == '-') w = -1;for (; isdigit(c); c = getchar()) s = (s << 1) + (s << 3) + (c ^ 48);return s * w;
}LL getb(LL x, LL y){ return x + y; }
bool cmp(node x, node y){ return x.l == y.l ? x.r < y.r : x.l < y.l; }
bool jiao(int i, int j){LL L = max(a[i].l, b[j].l), R = min(a[i].r, b[j].r);return L < R;
}int main(){int Q = read();while (Q--){n = read();cnt1 = cnt2 = 0;for (int i = 1; i <= n; ++i){int x = read(), y = read(), w = read(), h = read(), d = read();int s1 = getb(x, y), s2 = getb(x, y + h), s3 = getb(x + w, y), s4 = getb(x + w, y + h);int Min = min(min(s1, s2), min(s3, s4)), Max = max(max(s1, s2), max(s3, s4));if (!d) a[++cnt1] = (node){Min, Max}; else b[++cnt2] = (node){Min, Max};}sort(a + 1, a + 1 + cnt1, cmp);sort(b + 1, b + 1 + cnt2, cmp);int i = 1, j = 1, ans = 1;while (i <= cnt1 && j <= cnt2){if (jiao(i, j)){ ans = 2; break; }if (a[i].l <= b[j].l && i < cnt1) ++i; else ++j;}printf("%d\n", ans);}return 0;
}

【题解】慈溪中学-8.13-T3相关推荐

  1. 2021年慈溪横河中学高考成绩查询,慈溪中学

    2013浙江慈溪中考分数线公布 2013年慈溪市中考成绩揭晓,从慈溪市教育局获悉,今年慈溪市普高投档控制线为485.5;慈溪中学统招线为565. 昨天,公办普高第一批次录取分数线同时划定:浒山中学54 ...

  2. 2021年慈溪中学高考成绩查询,2021年慈溪市高考状元名单资料,今年慈溪市高考状元多少分...

    高考状元一直都备受大家的关注,不管对于学校和还是当地教育系统,都是一件荣誉的事情.高考状元历来都诞生于艳羡的目光中,大家为他们的高分叫好,羡慕他们可以一步踏入国内知名学府.本文高考升学网为大家介绍历年 ...

  3. C语言2009年慈溪最大的数,慈溪中学2009年保送生招生考试科学[1]1

    很好的竞赛试题 慈溪中学2009年保送生招生考试 科 学 说明:I.本卷考试时间100分钟,满分130分. II.本卷分试题(共7页)和答卷(共4页),答案必须做在答题卷上. III.本卷可能用到的相 ...

  4. 【题解】慈溪中学-8.15-T2

    传送门 根据卢卡斯定理,CnmModC_{n}^{m} ModCnm​Mod p=C[np][mp]Modp=C_{[\frac{n}{p}]}^{[\frac{m}{p}]}Modp=C[pn​][ ...

  5. 【题解】慈溪中学-8.14-T1

    传送门 一个很显然的DP,考试的时候写wa了 O(n2)O(n^2)O(n2)DP 考虑当前dpi,jdp_{i,j}dpi,j​可以由什么转移过来 枚举当前填c=′0′/′1′c='0'/'1'c= ...

  6. 【题解】慈溪中学-8.12-T2

    传送门 本题的一个特殊的性质: 定义"边"表示横向相邻两个都是1或纵向相邻两个都是1 一个连通块可以想成一棵树 那么一个区域的连通块个数就是点数−边数点数-边数点数−边数 二维前缀 ...

  7. 【题解】慈溪中学-8.15-T1

    传送门 二分,枚举答案 如果验证是否能给mid个充电器都充电 那当然是给更安全的充电器充电 然后对于每个充电器是否能充电,总是先尽可能插插线板,然后充电 Code: #include <bits ...

  8. 【题解】慈溪中学-8.14-T2

    传送门 貌似是一种叫2−SAT2-SAT2−SAT的东西 我理解是一种建图思想 分两层考虑 选一个对的就要选两个错的,这样来建图 然后缩点 若一个点对应在两层的被缩在同一点,矛盾,输出-1 否则正常输 ...

  9. 【题解】慈溪中学-8.13-T1

    传送门 首先暴力DP: dpi,j=max(dpi−1,k+(i−1)∣ai−1,k−ai,j+1∣)dp_{i,j}=max(dp_{i-1,k}+(i-1)|a_{i-1,k}-a_{i,j+1} ...

最新文章

  1. 请问以前在这儿下载的东西
  2. Syntax error, parameterized types are only available if source level is 1.5
  3. kafka partition分配_Kafka架构原理,也就这么回事
  4. android 事件反拦截
  5. 华为P50外观定了:居中挖孔
  6. Struts2学习笔记(八) 拦截器(Interceptor)(上)
  7. 【java笔记】大数操作(BigIntegerBigDecimal)
  8. C++11新特性之std::function<>
  9. 二维haar小波matlab_MATLAB实验之二维小波变换[附效果图]
  10. (转)终于把区块链的技术与应用讲清楚了ppt
  11. allure的安装使用以及报告的生成
  12. Fluent:如何用Custom Field Function Calculater替代UDMI提高收敛性
  13. Java SE基础——Java集合
  14. Python selenium —— selenium与自动化测试成神之路
  15. “天才少年” 27岁华为副总裁 百度CTO 成为阶下囚的传奇经历
  16. 爬山搜索法c语言代码,搜索算法--爬山法 (代码示例)
  17. or计算遇到存在零“0”的情况
  18. Cheat Engine Step 8详细解读
  19. JavaScript - Ajax
  20. Jackson序列化 — 修改属性名称

热门文章

  1. centos7根据端口查进程_linux下根据端口号查询对应进程
  2. Win7安装kb4474419补丁(附补丁连接)
  3. Altium Desginer如何添加数码丝印以及roboto丝印
  4. 新浪微舆情/新浪舆情通
  5. 深入浅出云服务一ECS
  6. 火影忍者第1集-日语自学
  7. java语音验证码_Java代码示例_Java语音验证接口 | 微米-中国领先的短信彩信接口平台服务商...
  8. 语音验证码是怎么发的?如何选择语音验证码平台?
  9. 基于javaweb的在线游戏商城系统(java+springboot+mybatis+mysql+layui+jsp)
  10. Mapreduce程序 统计文件中每个单词出现次数