计算几何 + Manacher .
沿着多边形转一圈,把经过的边和角存下来,形成了一个环.
在这个环上断掉一个位置,若形成的序列是回文的,说明断掉的那个边的中点/角处有一条对称轴.
把环倍长成链,一条对称轴会在两端都被统计,用 Manacher 找有多少个长度为 $n$ 的回文串,它的一半就是答案.
判断边是否相同可以直接判长度,判断角是否相同,需要判形成它的两条边的叉积.
1 | //%std |
夢はここに 思い出は遠くに
计算几何 + Manacher .
沿着多边形转一圈,把经过的边和角存下来,形成了一个环.
在这个环上断掉一个位置,若形成的序列是回文的,说明断掉的那个边的中点/角处有一条对称轴.
把环倍长成链,一条对称轴会在两端都被统计,用 Manacher 找有多少个长度为 $n$ 的回文串,它的一半就是答案.
判断边是否相同可以直接判长度,判断角是否相同,需要判形成它的两条边的叉积.
1 | //%std |