把每个人的监视范围看成点,相邻的两个监视范围连边,那么跑一遍最短路就可以了(事实上边权都为1可以直接bfs)。显然最优的话不会有某个时刻同时被多人监视,要跨过去的话完全可以经过分界线而不是交点。 现在问题是怎么求出哪些监视范围相邻。考虑对于某个人的监视范围求出所有与它相邻的。两个监视范围的公共边是这 ...
分类:
其他好文 时间:
2018-08-04 13:03:22
阅读次数:
157
<题目链接> 题目大意: 给出一个凸多边形的房间,根据风水要求,把两个圆形地毯铺在房间里,不能折叠,不能切割,可以重叠。问最多能覆盖多大空间,输出两个地毯的圆心坐标。多组解输出其中一个,题目保证至少可以放入一个圆。 解题分析: 因为放置的圆不能超出多边形的边界,所以先将该凸多边形的各个边长向内平移 ...
分类:
其他好文 时间:
2018-08-04 00:05:45
阅读次数:
215
POJ3335 半平面交裸题 c++ //poj3335 include include include define rep(i,a,b) for(int i=a;i 0) hp[m 1] = hp[i]; } n = m; } bool halfplaneinsert() { for(int i ...
分类:
其他好文 时间:
2018-07-31 01:28:05
阅读次数:
210
相当于多边形内最大圆,二分半径r,然后把每条边内收r,求是否有半平面交(即是否合法) ...
分类:
其他好文 时间:
2018-03-06 23:15:48
阅读次数:
192
求多边形的核,直接把所有边求半平面交判断有无即可 ...
分类:
其他好文 时间:
2018-03-06 23:13:09
阅读次数:
194
半平面交求多边形的核,注意边是顺时针给出的 ...
分类:
其他好文 时间:
2018-03-06 23:10:03
阅读次数:
166
这题真tm是醉了。 就是对于每个亲戚,利用其它的亲戚对他半平面交求出其控制的范围,然后随便跑个最短路就行了 n=0卡了我一下午////// 1 #include <cstdio> 2 #include <cstring> 3 #include <iostream> 4 #include <algor ...
分类:
其他好文 时间:
2018-03-06 20:26:15
阅读次数:
116
其实并不算标准半平面交?但是思路差不多 先按照斜率排序,然后用栈维护凸壳,每遇到重斜率或a[i],s[top 1]交点的x轴在s[top],s[top 1]交点左侧,则说明s[top]被a[i],s[top 1]覆盖,弹栈即可; cpp include include include using n ...
分类:
其他好文 时间:
2018-03-04 22:12:03
阅读次数:
168
题目: Most Distant Point from the Sea 模板备忘。 对于无限大的半平面,可以用一个非常大的矩形围出一块有限的面积。 半盘面交的题目需要小心处理平行的直线。 ...
分类:
其他好文 时间:
2018-03-04 11:56:44
阅读次数:
148
```cpp include include include include using namespace std; const int N=505; int d,b,n,m; struct dian { double x,y; dian(double X=0,double Y=0) { x=X, ...
分类:
其他好文 时间:
2018-03-03 22:31:12
阅读次数:
199