#P16527. [Dapc2024]fractal area
[Dapc2024]fractal area
题目背景
当地数学研究所的负责人准备在墙上绘制一些分形图案。为了确定这些图案是否适合墙面的大小,同时计算所需油漆量,需要求出最终分形图形的面积。
题目描述
给定一条从 到 的折线。
最初有一个边长为 的等边三角形。之后,对其边界上的每一条线段进行递归替换:将该线段替换为原折线经过适当缩放和旋转后得到的副本,使副本的两个端点与原线段的两个端点重合,并保持方向一致。
这一替换过程无限进行,最终形成一个分形图形。请计算该分形图形的面积。
下图展示了第一个样例所给折线以及最终形成的 Koch 雪花。

第一个样例的折线与最终分形
输入格式
第一行包含一个整数 ,表示定义折线的点数。
接下来 行,每行包含两个浮点数 ,表示折线上的一个点。各点按照它们在折线上的顺序给出。
保证:
- ;
- ;
- ;
- 所有浮点数的小数点后恰好有 位;
- 第一个点为 ;
- 最后一个点为 ;
- 最终分形收敛,并且不会与自身发生重叠。
输出格式
输出最终分形图形的面积。
当你的答案与标准答案的绝对误差或相对误差不超过 时,视为正确。
样例 1
输入
5
0.000000 0.000000
0.333333 0.000000
0.500000 0.288675
0.666667 0.000000
1.000000 0.000000
输出
0.692820545
样例 2
输入
5
0.000000 0.000000
0.200000 0.000000
0.600000 -0.200000
0.500000 0.000000
1.000000 0.000000
输出
0.237360528
难度评定
本题的核心是把每一层新增面积表示成相似缩放后的递推关系:既要计算原折线一侧的有向面积,又要计算所有子线段长度平方之和所形成的缩放系数,最后求无限等比级数。几何建模、符号方向与浮点精度都容易出错。
估计 Codeforces 评分:2200