【题解】[Codeforces 1086F] Forest Fires | 20211119 模拟赛 o【插值 扫描线】

题目链接

题意

有一个无限大的网格图,有若干位置初始着火,之后每个着火位置会引燃其八连通格子,火传播了 \(t\) 时刻。定义一个格子的权值为其最早别点火的时间,求权值和。\(n\leq 50\)

题解

我们考虑每一行的权值和 \(f(y)\)\(f(y)\) 会是一个分段二次函数,对于每一段可以插值计算。对于计算单点 \(y\),其形态类似于若干 \_/ 状物的 min 的面积;由于这种东西顶部宽度相同,所以随着 \(x\) 变大 min 会在更靠右的点取到,提前排序可以 \(O(n)\) 求单点值。

将其看作 \(t\) 的函数可以巨大多好写(单点值是矩形面积并)。

posted @ 2021-11-19 16:11  破壁人五号  阅读(64)  评论(0编辑  收藏  举报