摘要: 思路:我们先判断这两条直线是否平行 若平行 再去判断是否重合 若不平行 算交点 具体实现:对于平行 我们直接判断v1,v2的叉积(v1,v2是来表示L1,L2的向量)是否为0 对于重合 我们把l1上的端点p1代入l2 判断叉积 如图 只需判断v1,v2的叉积是否为0 ,可以画个重合的图自行理解 对于 阅读全文
posted @ 2018-10-15 23:06 Patrickpwq 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 题目大意 : 给你一堆线段 问你是否存在这样一条直线 使得所有线段在直线上的投影均有公共部分 有输出Yes 没有输出No 性质1 只要我们找到一条直线能够穿过所有线段 那就是yes 这个可以感性理解 性质2 对于两条线段 我们可以枚举他们的端点穿成的不同的直线 判断是否穿过所有线段 与上面是等价的 阅读全文
posted @ 2018-10-15 21:08 Patrickpwq 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 传送门 设点a 假如a在一个板子1的左边 那他肯定也在一个板子2左边 而且板子还是按顺序排的 满足单调性 可以二分 考虑check 判断点a在直线L左边 只需判断a到直线L的端点1 端点2两个向量的叉积小不小于0 阅读全文
posted @ 2018-10-15 16:54 Patrickpwq 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 我们已经知道 两个向量的叉积就是他们所构成的平行四边形的面积 如果多边形是凸的 于是就可以从第一个顶点出发 把凸多边形分成n-2个三角形 通过叉积把面积加起来 其实多边形是凹的也适用 因为叉积算的是有向面积 一正一负便会抵消 阅读全文
posted @ 2018-10-15 15:29 Patrickpwq 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 很好的一道题 就是代码几百年都调不出来 首先可以想到树链剖分维护 其次怎么维护呢?我们可以魔改一下线段树 联想到线段树求最大子段和的做法 另外维护左右两个端点 合并的时候特判一下 这道题也是类似 我们维护左右端点的颜色 在合并左右儿子时候 如果左儿子的右端点=右儿子的左端点 那么当前节点的连续颜色数 阅读全文
posted @ 2018-10-15 11:16 Patrickpwq 阅读(92) 评论(0) 推荐(0) 编辑