凸包
SC.ldxcaicai
我很菜=_=
展开
-
POJ 3348 Cows(凸包)
Cows Time Limit: 2000MS Memory Limit: 65536K Description Your friend to the south is interested in building fences and turning plowshares into swords. In order to help with his overseas adve...原创 2018-07-03 13:24:50 · 345 阅读 · 0 评论 -
LOJ#3156. 「NOI2019」回家路线(前缀和优化建图+for循环+凸包)
传送门来一发大常数做法(然而网络赛的时候凸包插点的方向写反了。。。40pts40pts40pts滚了什么我居然还有40)对于一条边(u,v,p,q)(u,v,p,q)(u,v,p,q),我们把二元组(v,q)(v,q)(v,q)看成一个点。这样下来一共有mmm个点。假设每个点对应有len1ilen1_ilen1i个二元组(i,val1i,j)(i,val1_{i,j})(i,val1i,...原创 2019-07-17 19:14:13 · 303 阅读 · 0 评论 -
2017 ECNA Regional Contest B:Craters (圆的凸包)
传送门题意:给你200200200个圆,让你求出所有圆的凸包。思路:先把圆去重,然后把圆套圆中的小圆给去掉。接着做出圆的两两公切点,丢掉所有在某个圆内部的点,然后做凸包即可。计算长度时要判断是否在一个圆上,如果在上面要判优弧/劣弧,不在就直接加距离。凸包求错导致调了3h3h3h的圆的部分硬是过不了。。。代码:#include<bits/stdc++.h>#defin...原创 2019-07-20 11:10:23 · 414 阅读 · 0 评论 -
NOIp训练 [SCOI2019]湖之精灵的游戏(凸包)
传送门吐槽:爆空间的阴影挥之不去。。。题意:一个二维平面上有n个点,第ii个点的坐标是(xi,yi),你要和一位神仙玩游戏。每次神仙会告诉你一个坐标(x,y),连一条经过(0,0),(x,y)的直线,这会把平面分成两个部分A,B 你要选择一个区间[l,r],那么计算的时候只会考虑编号在[l,r]之内的点。一个半平面的价值是这个半平面中,编号在[l,r]范围内的点与(0,0),(x,y)组...原创 2019-07-19 19:46:16 · 184 阅读 · 0 评论 -
bzoj4311: 向量(线段树分治+凸包)
传送门题意:支持插入一个向量,删去某一个现有的向量,查询现有的所有向量与给出的一个向量的点积的最大值。思路:考虑线段树分治。先对于每个向量处理出其有效时间放到线段树上面,然后考虑查询:对于两个已有的向量(u1,v1)(u_1,v_1)(u1,v1)和(u2,v2)(u_2,v_2)(u2,v2),假设给出的向量为(x0,y0)(x_0,y_0)(x0,y0)u1&g...原创 2019-02-26 21:07:42 · 250 阅读 · 0 评论 -
bzoj2300: [HAOI2011]防线修建(set+凸包)
传送门题意:动态维护凸包周长。思路:见这篇求面积的吧反正都是一个套路。代码:#include<bits/stdc++.h>#define int long long#define ri register intusing namespace std;inline int read(){ int ans=0; bool f=1; char ch...原创 2019-02-21 21:57:07 · 188 阅读 · 0 评论 -
bzoj5317: [Jsoi2018]部落战争(凸包+Minkowski和)
传送门题意:qqq次询问把一个凸包整体加一个向量(x,y)(x,y)(x,y)之后是否与另外一个凸包相交。思路:转化一下发现只要会求A+B={v⃗=a⃗+b⃗∣a⃗∈A,b⃗∈B}A+B=\{\vec v=\vec a+\vec b|\vec a\in A,\vec b\in B\}A+B={v=a+b∣a∈A,b∈B}即可,这个要用到一个叫做MinkowskiMinkowskiMinkow...原创 2019-02-21 21:54:50 · 265 阅读 · 0 评论 -
bzoj1249: SGU277 HERO 动态凸包(set+凸包)
传送门题意:动态插入点,维护凸包面积。思路:用setsetset维护极角序来支持面积查询即可。然后注意选原点的时候要从初始三个点随机平均系数来避免精度误差。代码:#include<bits/stdc++.h>#define ri register llusing namespace std;typedef long long ll;inline ll read(){...原创 2019-02-21 21:49:43 · 536 阅读 · 0 评论 -
bzoj2829: 信用卡凸包(凸包)
传送门题意:给nnn个A∗BA*BA∗B的矩形,其中每个矩形的四个角被改造成了半径为rrr的四分之一 圆,问这些矩形的凸包周长。思路:考虑求出圆心的凸包周长然后加上一个整圆的周长,证明很简单,略掉。代码:#include<bits/stdc++.h>#define ri register intusing namespace std;const int N=10005;...原创 2019-02-21 21:46:44 · 193 阅读 · 0 评论 -
bzoj2388: 旅行规划(分块+凸包)
传送门分块好题。题意:维护区间加,维护区间前缀和的最大值(前缀和指从1开始的)。思路:考虑分块维护答案。我们把每个点看成(i,sumi)(i,sum_i)(i,sumi)答案一定会在凸包上,于是我们每个块维护一个凸包。然后发现 每次前缀和可以分区域修改,在区域内的相当于给所有点的连线加一个斜率,对于区域外的相当于打一个addaddadd标记,于是给每个块维护整体加标记,斜率增加的...原创 2019-01-20 17:15:53 · 224 阅读 · 0 评论 -
2018.10.15 bzoj4570: [Scoi2016]妖怪(凸包)
传送门不得不说这题有点东西啊。看到题第一眼二分,用二次函数求范围来进行checkcheckcheck,20分滚粗了233.于是开始思考正解。发现可以把每只怪物的二元组属性看成二维坐标。这时对于一只怪物(x,y)(x,y)(x,y),一种环境相当于是一条过了点(x,y)(x,y)(x,y)的直线,贡献就是在横纵坐标的截距之和。观察之后很容易发现答案只跟所有点的右上凸壳有关系。于是我们...原创 2018-10-15 20:55:53 · 122 阅读 · 0 评论 -
2018.10.18 bzoj1185: [HNOI2007]最小矩形覆盖(旋转卡壳)
传送门不难看出最后的矩形一定有一条边与凸包某条边重合。因此先求出凸包,然后旋转卡壳求出当前最小矩形面积更新答案。代码:#include&lt;bits/stdc++.h&gt;#define N 50005#define eps 1e-9using namespace std;struct pot{ long double x,y; inline pot operator+(c...原创 2018-10-18 10:39:48 · 201 阅读 · 0 评论 -
POJ 1113 Wall(凸包)
Wall Time Limit: 1000MS Memory Limit: 10000K Description Once upon a time there was a greedy King who ordered his chief Architect to build a wall around the King’s castle. The King was so gr...原创 2018-07-04 16:22:00 · 268 阅读 · 0 评论 -
洛谷P5114 八月脸(边分治+闵可夫斯基和)
传送门边分治+闵可夫斯基和即可(注意要处理lca的情况代码:#include<bits/stdc++.h>#define ri register int#define fi first#define se secondusing namespace std;const int rlen=1<<18|1;inline char gc(){ static c...原创 2019-08-21 20:10:48 · 239 阅读 · 0 评论