luogu#P8000. [WFOI - 01] 循环节(circle)

    ID: 11996 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 难度: 6 上传者: 标签>计算几何洛谷原创Special JudgeO2优化凸包旋转卡壳洛谷月赛

[WFOI - 01] 循环节(circle)

题目背景

简化题意:Link\texttt{Link}

出题人注:これは非常に嫌な質問なので、あまり時間をかけたくない場合は、この質問を見る前に他の質問を終えることをお勧めします。

题目描述

给你一个坐标系上的点集 aa,你需要找出一个子点集 bb 和一个向量 xx,使得 $\exist\ z\in N^+,\{b\cup b+x\cup b+2x\cup\dots\cup b+zx=a\}$。

现在想让你求出任意一对 b0,x0,z0b_0,x_0,z_0,其中 z0z_0 为所有满足条件的三元组中 zz 最大的,b0b_0 中任意三点不共线,任意四点不构成梯形或平行四边形且 $b_0\cap b_0+x_0=\varnothing,b_0\cap b_0+2x_0=\varnothing,\dots,b_0\cap b+yx_0=\varnothing|{y\to+\infty}$。

其中 b+xb+x 的意思是,bb 中的所有点都平移向量 xx 后组成的点集。

输入格式

第一行一个正整数 nn

接下来 nn 行,每行 22 个整数,表示一个点。

输出格式

输出共 44 行:

第一行一个整数 b|b|

第二行 b|b| 个整数 b1,b2,,bbb_1,b_2,\dots,b_{|b|}(对应编号)。

第三行两个整数 xx

第四行一个整数 zz

4
0 0
0 1
1 0
1 1
2
1 3
0 1
1
3
0 0
0 1
1 0
3
1 2 3
0 0
0

提示

由于本题有样例解释也只是照着念一遍,并且相信既然您都做到这一题来了应该能读懂题目含义,所以本题不提供样例解释(其实是出题人懒)。

本题采用 Subtask 捆绑测试。 Subtask 编号 | 数据规模与约定 :-: | :-: Subtask #0(20 pts\text{20 pts}) | 1n101\le n\le1010xi,yi10-10\le x_i,y_i \le 10 Subtask #1(20 pts\text{20 pts}) | 1n1031\le n\le10^3 Subtask #2(30 pts\text{30 pts}) | z>1z>1 Subtask #3(30 pts\text{30 pts}) | 无特殊限制

对于 100%100\% 的数据,1n1051\le n\le10^5,点的坐标范围 (109,109)\in\left(-10^9,10^9\right),数据保证有解。