模拟11

T1

比较显然的约瑟夫环

考虑当前轮,设为第\(i\)轮死的人的编号是多少,应该为\((i-1)\%(n-i+1)+1\),这样可以\(O(n^2)\)的从开头到现在更新编号,考虑\(N^2\)的时间复杂度主要来自更新编号,但其实有用的只有一个,就是最后留下的那个,所以可以倒着推回去,可以倒着推的原因是这是一个环,可以以任意一个点为初始标号,假设最后剩下的人在第\(i\)轮的标号为\(x\),说明它距离\(1\)\(x\)个单位,然后我们又知道\(i-1\)轮中谁死了,设为\(p\),那么当前人的编号在\(i-1\)轮应该是\(p+x\),超过了总人数就\(\%\)一下,因为第一个人是\(p+1\)号,推一下就有了,注意环的性质。

T2

随便模拟

T4

发现最后合法的答案是唯一的,所以维护答案的\(hash\)值就行。

posted @ 2020-10-09 17:20  An_Fly  阅读(109)  评论(1编辑  收藏  举报