Warning: session_start(): open(/tmp/sess_8f69631816fc5978059ac6db6e3fe6b5, O_RDWR) failed: No space left on device (28) in /data/wiki/inc/init.php on line 239

Warning: session_start(): Failed to read session data: files (path: ) in /data/wiki/inc/init.php on line 239

Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/inc/auth.php on line 430
Writing /data/wiki/data/cache/d/de2edb2fcb553ea79b79c722a4e13dbc.captchaip failed

Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/inc/actions.php on line 38

Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/lib/tpl/dokuwiki/main.php on line 12
2020-2021:teams:i_dont_know_png:qxforever:geometryproblems [CVBB ACM Team]

用户工具

站点工具


2020-2021:teams:i_dont_know_png:qxforever:geometryproblems

到此差别页面的链接

2020-2021:teams:i_dont_know_png:qxforever:geometryproblems [2020/06/29 04:44]
qxforever 创建
2020-2021:teams:i_dont_know_png:qxforever:geometryproblems [2020/06/29 07:54] (当前版本)
qxforever [解题思路]
行 50: 行 50:
  
 然后被求直线交点的精度问题卡了 ~3 个小时。 然后被求直线交点的精度问题卡了 ~3 个小时。
 +
 +===== 2019 牛客暑期多校训练营 8 - F =====
 +
 +[[https://​ac.nowcoder.com/​acm/​contest/​888/​F|链接]]
 +
 +==== 题意 ====
 +
 +给二维平面上 $n$ 个点,问有多少四元组满足,一个点在另三个点围成的三角形内。不允许三点共线。$n\le 1000$,$\vert x\vert,​\vert y\vert \le 10^9$。
 +
 +==== 解题思路 ====
 +
 +除了共线需要额外处理之外,基本算是 [[https://​codeforces.com/​contest/​1284/​problem/​E|CF1284E]] 的弱化版。
 +
 +枚举被围的点作为中心点,极角排序。考虑从所有可能方案即 $\binom{n-1}{3}$ 中减去不合法的方案。
 +
 +一个方案需要三个点。按极角序枚举点,计算该点做为三角形中极角序最小的点的且不合法的方案数。对于剩下两个点的位置,当另两个点位于中心点与枚举的点的同侧时,中心点落在三角形外。''​%%lower_bound%%''​ 找一下范围即可。
 +
 +共线不难处理,注意不要重复计算一些非法情况。时间复杂度 $O(n^2\log n)$
 +
 +$10^9$ 的坐标范围下,使用 ''​%%atan2%%''​ 进行极角排序大概率会有精度问题。在 [[https://​codeforces.com/​contest/​1284/​problem/​E|CF1284E]] 踩过坑了这里就没踩。
2020-2021/teams/i_dont_know_png/qxforever/geometryproblems.1593377094.txt.gz · 最后更改: 2020/06/29 04:44 由 qxforever