凸包
stargazer.
夜を穿つの
展开
-
【BZOJ 2402】陶陶的难题II(分数规划+树链剖分+凸包二分)
传送门题解已经写在标题上了不过复杂度O(nlog4n)O(nlog^4n)O(nlog4n)能过也是神了#include<bits/stdc++.h>using namespace std;const int RLEN=(1<<20)|5;inline char gc(){ static char ibuf[RLEN],*ib,*ob; (ib==ob)&a...原创 2019-10-19 00:06:29 · 164 阅读 · 0 评论 -
【洛谷P4557】【JSOI2018】—战争(Minkowski Sum)
传送门补模板,无题解#include<bits/stdc++.h>using namespace std;#define gc getcharinline int read(){ char ch=gc(); int res=0,f=1; while(!isdigit(ch))f^=ch=='-',ch=gc(); while(isdigit(ch))res=(res...原创 2019-07-18 20:43:17 · 198 阅读 · 0 评论 -
【SCOI2019】—DAY2T1 湖之精灵的游戏(凸包+二分)
考场debuffdebuffdebuff太严重了下来一眼沙比提考虑其实就是求一段区间Max∣∑i∈[l,r](xi,yi)∗(x,y)∣Max|\sum_{i\in [l,r]}(x_i,y_i)*(x,y)|Max∣i∈[l,r]∑(xi,yi)∗(x,y)∣因为叉积不同方向会有正负由于有绝对值,可以拆成最大前缀和减去最小前缀和先只考虑最大前缀和即Max∑xi∗y−∑yi...原创 2019-05-25 20:13:35 · 205 阅读 · 0 评论 -
【BZOJ2961】【国家队清华集训2012~2013】—共点圆(CDQ分治+凸包)
传送门其实也不是很难,但是没考虑周全调了半天……我还是tcltcltcl显然可以直接对圆反演后用平衡树维护动态凸包考虑到对于一个点(x0,y0),(x_0,y_0),(x0,y0),在圆(x,y)(x,y)(x,y)中即(x0−x)2+(y0−y)2≤x2+y2(x_0-x)^2+(y_0-y)^2\le x^2+y^2(x0−x)2+(y0−y)2≤x2+y2化简后即x02+y...原创 2019-03-18 19:46:01 · 206 阅读 · 0 评论 -
【BZOJ1492】【NOI2007】—Cash(cdq分治维护凸包优化斜率dp)
传送门考虑令f[i]f[i]f[i]为第iii天得到的最多的AAA券,g[i]g[i]g[i]为第iii天得到的最多的BBB券则g[i]=f[i]/rate[i]g[i]=f[i]/rate[i]g[i]=f[i]/rate[i]那显然有个n2dpn^2dpn2dp,暴力枚举前一天转移但显然这样得不到满分考虑如果前面i,ji,ji,j两天对于决策nownownow的影响,如果iii比jj...原创 2019-03-06 17:27:19 · 223 阅读 · 0 评论 -
【BZOJ282】【洛谷P3829 】【SHOI2012】—信用卡凸包(凸包)
传送门可以发现答案就是所有信用卡四个角的圆心做出来的凸包加上一个整的圆的周长证明?由于直线的斜率不会变,所以只有可能在圆的边上绕的时候改变把所有圆围起来就是一个整圆了剩下的在边上和圆心无所谓(思考)然后凸包就完了关于向量旋转角度的变换随便找一篇blogblogblog或者手推一下就出来了#include&amp;lt;bits/stdc++.h&amp;gt;using namespace st...原创 2019-02-16 20:47:33 · 173 阅读 · 0 评论 -
【BZOJ1185】【HNOI2007】最小矩形覆盖(凸包+旋转卡壳)
传送门求最小矩阵覆盖原创 2019-02-22 07:42:03 · 182 阅读 · 0 评论 -
【BZOJ1069】【SCOI2007】—最大土地面积(凸包+旋转卡壳)
传送门考虑枚举任意222个点,那么只需要枚举第二个点的时候旋转卡壳就可以O(n)O(n)O(n)得到最远点对了#include<bits/stdc++.h>using namespace std;inline int read(){ char ch=getchar(); int res=0,f=1; while(!isdigit(ch)){if(ch=='-')f=-f;...原创 2019-02-21 22:03:09 · 146 阅读 · 0 评论 -
【BZOJ2300】【HAOI2011】—防线修建(set维护动态凸包)
传送门题意:给你一堆点,支持删去一个点,询问当前凸包的周长考虑一个一个删去不好处理,离线后一个个加入就成了一道动态凸包的板子了用setsetset维护一下就可以了#include<bits/stdc++.h>using namespace std;inline int read(){ char ch=getchar(); int res=0,f=1; while(!...原创 2019-02-21 21:55:04 · 266 阅读 · 0 评论 -
【POJ1912】【Ceoi2002】—A highway and the seven dwarfs(凸包)
传送门题意:给出平面上的 nnn 个点,对于 mmm 条直线,依次判断这 nnn 个点是否在每条直线的同一侧。(n,m≤105n,m≤10^5n,m≤105)考虑对于每一条直线,显然我们要找到凸包上距离这条直线最远的2个点,判一下方向考虑到类似于旋转卡壳对踵的的思想记录一下每条边的斜率,然后二分找到的就是最远的点了#include<bits/stdc++.h>using n...原创 2019-02-21 21:49:27 · 258 阅读 · 0 评论