摘要: 半平面交第一题 ! 题意是给出一个多边形,问他是否存在内核,即“可以看到任何一个地方的区域”。 内核即半平面交,下面是离线求半平面交的$nlogn$算法 ~~~cpp include include include include include using namespace std; const 阅读全文
posted @ 2018-11-23 23:00 nianheng 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 题意:给出一些直线,直线与直线切割的线段是围墙,只能从围墙中间穿过,问最少穿过几层墙才能到达终点 看到数据范围很小就开心地写了暴力找点+最短路,后来看了hzwer大神的题解才发现我还是太naive了... 这道题只要求从终点到外围直线与围墙的最少交点就能过! ~~~cpp include inclu 阅读全文
posted @ 2018-11-23 22:52 nianheng 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 题意:给出一些墙,不能穿墙,求从起点到终点的最短路 就是最短路啊 ~~~cpp include include include include include using namespace std; const int maxn=1e5+100; const double inf=1e10; st 阅读全文
posted @ 2018-11-23 22:45 nianheng 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 题意:判断两条直线相交,平行还是重合 ~~~cpp include include include include using namespace std; struct Point{ double x,y; Point(double xx=0,double yy=0){ x=xx,y=yy; } 阅读全文
posted @ 2018-11-23 22:43 nianheng 阅读(81) 评论(0) 推荐(0) 编辑
摘要: 题意:给出n条线段,问是否存在一条直线使所有线段在其上的映射有至少一个共点 假设找到了这条直线,那过共点作直线的垂线必然与n条线段相交,就相当于问是否存在直线可以与所有线段相交 $n^2$枚举直线,然后$O(n)$判断 ~~~cpp include include include include u 阅读全文
posted @ 2018-11-23 22:40 nianheng 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 考虑网络流,二分时间,源点向巫妖连流量为攻击次数的边,把每个巫妖向他能打的小精灵连一条流量为一的边,每个小精灵向汇点连一条边。 预处理每个小精灵能被那些巫妖打,这道题好像视线与树相切也算能打~~(雾~~。 ~~~cpp include include include include include 阅读全文
posted @ 2018-11-23 22:30 nianheng 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 题目中给出了三种金属的比例,实际上只用考虑两个就可以,第三个可以由另外两个确定qwq 如果把原料和需求看做二维平面上的点,可以发现两种原料能混合成的比例就在他们相连的线段上,也就是说线段上的点都能混合出来。所以如果一种需求包含在一些原料构成的多边形中,他就是可以被混合出来的,题目就变成了用最少的原料 阅读全文
posted @ 2018-11-23 22:18 nianheng 阅读(106) 评论(0) 推荐(0) 编辑