题解 LGP1053 【篝火晚会】

我感觉这些题解都好复杂而且看不懂看不懂/dk/dk于是来水一篇.

题意蛮难懂的感觉.造要达到的环这个过程比较简单,不多说.

从初始环到目标环

显然,把环的位置固定(严禁旋转)时,不相同的个数就是答案.

暴力的话. (O(n)) 旋转到不同角度的环,再 (O(n)) 计算答案.是 (O(n^2))

要优化

固定目标环,就按照原来刚求出的目标环就可以了

增加数组 (dis) , (dis_i) 是目标环上第i个离初始环上它的位置的距离,

也就是说,只要转 (dis_i) 就可以使它相同,不需要用命令改变位置.

使用 (vis_i) 计算 (vis_{dis_i}) ,也就是 (dis_i) 出现次数

答案是 (n-max(vis_i))

另外,有可能环是倒序的,因此也要计算一遍.

代码好写的很,不上了.

Thanks

原文地址:https://www.cnblogs.com/zdsrs060330/p/13882566.html