n<=500
法一:随机化最大团
法二:
每个蜘蛛是一个三维直线(x,y,t)
考虑按照所属面分别考虑这些蜘蛛
一些个蜘蛛相交,当且仅当这些直线共面
还有一种蜘蛛交在一点的情况,先判掉:
枚举两个直线,确定平面
枚举剩下的直线,考虑是否有交点
先考虑是否有所有直线交在一点
然后平行的只保留一个
再考虑共面
如果之前有三直线不共点:直接查是不是在平面上
否则如果和第一第二条直线交点重合,先留着,最后和某一个交点不重合的进行判断是否共面
给出一个点集
• 你要选择一个子集,其中每个点有 pi 的概率在子集中
• 求凸包面积的期望
?? ≤ 10^3
凸包的面积计算可以独立
考虑每个边在所有凸包上出现的贡献
带方向枚举每条边,这条边存在当且仅当右侧没有点并且两个端点存在
每次级角排序+扫描线即可
你有 ?? 个点
• 求最多能选出多少个其中的点,使得这些点两两之间的连线不和
以原点为圆心 ?? 为半径的圆相交
?? ≤ 2000
https://www.lydsy.com/JudgeOnline/problem.php?id=4660
其实,就是这些点和圆的两个切线之间的圆弧有关系,设圆弧为si
则这个集合的两两圆弧必须相交并且不互相包含
枚举第一个圆弧是哪个,剩下可选择的圆弧按照左端点排序,右端点必然是上升的,所以对右端点求LIS即可
挺巧的
原文:https://www.cnblogs.com/Miracevin/p/10901404.html