算法

B · Bread:中文题面

中文题面、约束与样例说明;个人实现待补。

本页目录7 节

本场总览 · QOJ 原题

时限 1 秒,内存限制 512 MB。中文内容依据本次提供的题面整理;以原题为准。

中文题面 #

一块面包视为平面上的凸多边形,顶点 A1,,AnA_1,\ldots,A_n 按逆时针排列,顶点互异且任意三点不共线。地面是 y=0y=0。初始边 (An,A1)(A_n,A_1) 接触地面,An=(0,0)A_n=(0,0)A1=(x1,0)A_1=(x_1,0)x1>0x_1>0

面包向 xx 轴正方向滚动。第 ii 次转动以当前的 A((i1)modn)+1A_{((i-1)\bmod n)+1} 为中心顺时针旋转,直到下一个顶点 A(imodn)+1A_{(i\bmod n)+1} 第一次接触地面。

kk 次转动结束时,L(k)L(k) 是原点到此时 A(kmodn)+1A_{(k\bmod n)+1} 的距离;S(k)S(k) 是从第一次转动开始到此时,多边形覆盖过的所有区域的并集面积。求

limk+S(k)L(k).\lim_{k\to+\infty}\frac{S(k)}{L(k)}.

重叠部分只计一次,不能把每次转动扫过的面积直接相加;也不要把 L(k)L(k) 换成某个顶点的运动轨迹长度。

输入、输出与约束 #

1T1031\le T\le10^3。每组先输入 3n1053\le n\le10^5,再输入 nn 个整数坐标 (xi,yi)(x_i,y_i),其中 xi109|x_i|\le10^90yi1090\le y_i\le10^9。保证 y1=xn=yn=0y_1=x_n=y_n=0x1>0x_1>0,并满足上述凸性和顺序条件;所有测试的 n3×105\sum n\le3\times10^5

每组输出一个浮点数。设输出为 aa、标准答案为 bb,要求 ab/max{b,1}109|a-b|/\max\{b,1\}\le10^{-9}

样例 #

输入 1 #

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

输出 1 #

4.908664519941197
1.384172075579563

样例说明 #

两组分别给出三角形与单位正方形,输出都是滚动次数趋于无穷时的比值。第一组三角形在 k=4k=4 时有 L(4)=4+326L(4)=4+3\sqrt{26},而 S(4)=120/13+133+91π/6+43arctan(1/5)S(4)=120/13+13\sqrt3+91\pi/6+43\arctan(1/5);这个有限步比值不应直接等同于样例输出的极限。

整理进度 #

本批材料没有这道题的个人 C++ 文件,因此这里先保留中文题面与样例解释;不把题面整理记作已补题。赛时提交过程与赛后补题记录待补。

讨论

评论

正在加载评论…

输入关键词开始搜索。