关闭
当前搜索:

[几何 扫描线 最大子段和] JOI Open Contest 2017 Bulldozer

题目大意:给出平面上n个带权点,有正有负,求平面上两条平行直线之间的点权和最大是多少 VIEW PROBLEM - BULLDOZER (JOI17_BULLDOZER)直接枚举斜率,点按照距离排序后是一个最大子段和问题 然后考虑扫描线旋转斜率,两个点相对关系变化只会发生在斜率与两点连线平行的情况,那么两点位置swap一下,更一般的如果是一段都满足这个,那么这一段要reverse一下 就是把两...
阅读(162) 评论(0)

[几何] Codeforces 772B VK Cup 2017 - Round 2 B. Volatile Kite

那么问题来了 O(n)O(n)判到底对不对#include #include #include using namespace std; typedef double ld;struct P{ ld x,y; void read() { double _x,_y; scanf("%lf%lf",&_x,&_y); x=_x; y=_y;...
阅读(173) 评论(0)

[几何 LIS] BZOJ 3663 Crazy Rabbit & 4660 Crazy Rabbit & 4206 最大团

膜一发题解 问题转化为直线上有一些区间,选出尽量多的区间使得它们两两之间”相交但不包含” 考虑最终方案中选出来的所有区间中左端点最小的一个,因为区间两两之间有公共部分所以这个区间内必须包含其他所有区间的左端点.那么我们枚举这个左端点最小的区间,只把其他区间中左端点在这个区间内的区间拿出来,按左端点排序后对右端点跑LIS,就可以保证选出来的区间有公共部分而且不包含.复杂度为O(n2logn)...
阅读(242) 评论(0)

[几何] BZOJ 4814 [Cqoi2017]小Q的草稿

把三角形拆成三条线段 以每个点为中心 极角排序一发 然后扫描线 set中维护线段 优先级为到中心点的距离 因为三角形不相交 所以大小关系不会变 遇到一个点就查一下最近的线段是不是挡住了 不然就有贡献 其实三角形对于一个点 只有一条边是有用的#include #include #include #include #includ...
阅读(553) 评论(0)

[几何 two-pointers] BZOJ 1278 向量vector

有一个结论就是组成答案的向量一定都在某一直线的一侧 证明:以答案向量作一个圆 这条直线就是过终点的切线#include #include #include #include using namespace std; typedef long long ld;struct PP{ ld x,y; double ang; P...
阅读(498) 评论(0)

[几何 模拟退火 || 随机增量法] Codeforces 442E #253 (Div. 1) E. Gena and Second Distance

怎么都在理性愉悦啊 总算做到一道有点思路的题了官方题解 题解里说的是什么呢 我们先二分答案AnsAns 然后我们考虑AnsAns合法的条件是存在一个圆OO 他只包含其中一个特殊点 我们肯定可以挪动这个圆 使得有至少一个点在边界上 枚举点pp在边界上 那么圆心OO就在以pp为圆心的圆CC上 圆心OO合法的条件是不存在其他点到他的距离 ≤Ans\leq Ans 实际上就是C的圆周上的不被任...
阅读(274) 评论(0)

[几何] BZOJ 1132 [POI2008]Tro

裸的做是 O(n3)O(n^3) 按极角排序后 用分配律 就可以 O(n2logn)O(n^2 \log n)#include #include #include #include using namespace std; typedef long long ll;const int N=3005;struct PP{ in...
阅读(99) 评论(0)

[几何] BZOJ 2710 [Violet 1]追风者 & POJ 3924 Tornado

好神的几何题 把一个点不动作为参照物 然后就变成了只有一个点在动 画出来就是这样然后就是求 一个点到两组平行线段的距离最小值#include #include #include #include using namespace std; typedef double ld;inline ld sqr(ld x){ return...
阅读(230) 评论(0)

[圆的反演] HDU 4773 Problem of Apollonius

反演详见ACdreamer的blog反演的基本性质 不过反演中心的一条直线反演成一个过反演中心圆 反之亦然 不过反演中心的一个圆反演成另一个不过反演中心的圆 那题目就很显然了先把两个圆反演 变成两个圆 在求公切线 再反演回去可能用到的几何方法 两圆的公切线 两个相交圆的交点 最后上几张图 #include #include #include<algorith...
阅读(245) 评论(0)

[凸包最大内接圆 二分 半平面交] POJ 3525 Most Distant Point from the Sea

二分答案 然后半平面向内缩 判断是否有交#include #include #include #include using namespace std; typedef double ld;const double eps=1e-7;inline int sgn(ld a){ if (fabs(a)<eps) return 0...
阅读(161) 评论(0)

[凸包 三分 数形结合] BZOJ 3203 [Sdoi2013]保护出题人

可以发现yi=MAXj<=i{sum[i]−sum[j−1]x[i]+(i−j)∗d}y_i=MAX_{j<=i} \{ {{sum[i]-sum[j-1]} \over {x[i]+(i-j)*d}} \} 这个东西是个斜率的形式 (x[i]+i∗d,sum[i])(x[i]+i*d,sum[i])和(sum[j−1],j∗d)(sum[j-1],j*d) 可以发现斜率最大一定在凸包上...
阅读(129) 评论(0)

[半平面交 随机增量法] BZOJ 2732 [HNOI2012]射箭

设抛物线为y=ax2+byy=ax^2+by 那么一个限制y1<=ax2+by<=y2y_1<=ax^2+by<=y_2 转化为b=−ax+y1xb=-ax+{y_1 \over x} 然后就是一个关于a b的半平面交 这个直接上模板就行了 据说加强的数据是一些半平面交是点 直线 线段 射线 之类的边界情况 我lon...
阅读(231) 评论(0)

[半平面交 模板题] BZOJ 3199 [Sdoi2013]escape

先用半平面交构出V图 然后连边bfs一通最短路 一个点的控制范围是和其他点的中垂线组成的半平面交#include #include #include #include #include #include #define cl(x) memset(x,0,sizeof(x)) using name...
阅读(131) 评论(0)

[半平面交对偶凸包] BZOJ 1007 [HNOI2008]水平可见直线

半平面交对偶转凸包问题 神奇的新姿势 还有待研究#include #include #include using namespace std; typedef long long ll;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; return p1==p2&&(...
阅读(156) 评论(0)

[线性规划 对偶 凸包 三分] Codeforces 605C #335 (Div. 1) C. Freelancer's Dreams

很显然的线性规划 对偶一下 maximum p∗x+q∗yai∗x+bi∗y<=1maximum\ p*x+q*y \\ ai*x+bi*y<=1 这个肯定是半平面交出一个凸包然后用直线去切 直接三分就好了 有点需要精度//ai*x+bi*y<=1 max p*x+q*y #include #include #include usi...
阅读(229) 评论(0)

[模型转化 最长下降子序列] BZOJ 2924 [Poi1998]Flat broken lines

将坐标系向左旋转45度,那么折线就要求x,y均不降,以x为第一关键字,y为第二关键字排序,那么一条折线就对应一个不降子序列。 根据最小链覆盖=最长反链,故求出最长下降子序列的长度即可 #include #include #include using namespace std; const int N=30005; struct abcd{ int x,y; void re...
阅读(163) 评论(0)

[几何 分治] BZOJ 2928 [Poi1999]飞弹 Rockets

算导上的经典问题 n2logn啊 卡来卡去 卡时过 main上过不去 TLE 每次找到两个点I,j连一条边,使它们连线左边黑点=白点,右边黑点=白点,然后对左右递归处理即可。 由数学归纳法可证这样一定有解。 时间复杂度关键在于划分的平衡性,以及找连线的复杂度 未想到如何快速Devide #include #include #inclu...
阅读(162) 评论(0)

[补集转化 有序化去重] Ural 1212 Battleship

论文:许智磊--浅谈补集转化思想在统计问题中的应用 可以发现这道题长度极小 总数极小 转化为总数减去有相交 去重可以运用有序化的思想  如何排除这种重复计数呢?我们采用一种排除重复的常用方法:有序化。也就是设法对于新矩形的一种摆放方案,只在处理与它相交的编号最小的已有矩形时才允许计入总数T。例如图七中,如果我们规定左边的黑色矩形编号较小,则在处理右边的黑色矩形时,与它相交...
阅读(143) 评论(0)

[圆的离散化 几何] POJ 1688 Dolphin Pool

调了一天半 就是过不去 心累 先挖个坑吧 论文:高逸涵《与圆有关的离散化方法》 #include #include #include #include #include #define cl(x) memset(x,0,sizeof(x)) using namespace std; typedef long double ld; typedef pair abcd; const ld...
阅读(416) 评论(0)

[复数 解析几何 || 随机化] Ural 1046 Geometrical Dreams & POJ 2600 Geometrical dreams

这个可以先设出a1 然后 一圈递推出an+1 an+1==a1 解这个方程就好了 这里用复数来实现 因为复数乘法是天然的旋转  复数旋转就是类似这样的东西 以下来自 POJ Discuss point getnp(point ori, point cen, double angle) //向量cen->ori绕cen旋转逆时针旋转angle弧度 { //复数平面向量旋转 poin...
阅读(152) 评论(0)
37条 共2页1 2 下一页 尾页
    个人资料
    • 访问:307463次
    • 积分:12383
    • 等级:
    • 排名:第1310名
    • 原创:969篇
    • 转载:3篇
    • 译文:0篇
    • 评论:54条
    最新评论