03 2021 档案
摘要:double eps = 1e-10; struct point { double x, y; } Point[maxn], P2[maxn]; struct line { point a, b; }; double area_polygon(int n, point *p) { double s1
阅读全文
摘要:题目链接 开始想着二分, 然后一直卡精度, 没有思考更简单的方法...太菜了www 先计算出s = 2是删去的面积$S[2]$那么 \(S[s] = 2^2/s^2 * S[2]\) 因为删去的面积是n个三角形面积的和,只改变s的情况下, 切去的三角形相似, 面积比为边长比的平方 多边形面积计算模板
阅读全文
摘要:// todo 常量定义 const double esp = 1e-9; const double pi = acos(-1); const ll inf = 0x3f3f3f3f3f3f3f3f; const ll maxn = 1e5 + 7; // todo 三态函数 int dcmp(do
阅读全文
摘要:题意:在马路上有n辆车在你前方,每辆车有三个属性:车长,车头离终点线距离,最大速度; 道路狭窄不能超车,问你最快多久能到达终点,每辆车到达终点之后还是会继续行驶,当你的车头到达终点时就认为你到达了终点 思路:一眼二分时间,关键是怎么check: 考虑我到达终点时前面的车需要到达的位置:终点向前走pr
阅读全文
摘要:问题是确定断开最短的边使得从1到n最短路长度增加 转化成两个问题: 确定边在最短路上 确定断开最短路上的那一条边 对于第一个问题,如果边(u,v)在最短路上则dis(1,u) + cost(u,v) + dis(v,n) = dis(1,n) dis(a,b)代表从a到b的最短距离 其中,dis(1
阅读全文
摘要:常用函数与注意事项: 点线段向量直线圆多边形基础类的封装 点与线段: 判断点是否在线段上 点与圆: 圆上两点计算逆时针弧长 给定三点确定圆 点与多边形 判断点是否在多边形内 线段与直线: 判断线段是否在直线上 判断线段与直线是否有交点 4.直线与圆: 5.圆上问题: 6.
阅读全文
摘要:判断点是否在多边形内,射线法O(n) 如果对每个点顺序地判断每个小四边形,算下复杂度O(n*m),显然tle 可以二分优化,注意二分终点是l + 1 < r. const int maxn = 1e5 + 7; int u[maxn], l[maxn]; const double eps = 1e-
阅读全文
摘要:二分 + 最小生成树 容易看到d可以二分,小于d边的直接连接, 最后check的是并查集里面父节点个数 const int maxn = 5e5 + 7; const double esp = 1e-9; int t, s, p, cnt, fa[maxn]; double x[maxn], y[m
阅读全文

浙公网安备 33010602011771号