我必须容纳一定数量的人(这里不相关)。
我有无数的房间,每个房间可以容纳两个人(从2,4,8,......)。而且,我一次只能买一个房间。
每次,房间太小,房间A 必须移动到更大的房间B 。当房间只有一半填满时,会发生相同的程序。在这种情况下,每个人都必须从房间B 移回房间A 。
现在有一个人违反我的策略并输入错误"进入/离开 - "行动,以便实际安置的人数是错误的(或多或少)。 我已经证明可以强迫O(n ^ 2)人改变房间 n"进入/离开" -actions (n是进入和离开的数量 - 动作)。
请注意,必须更改房间x次的人算作x次更换房间。
答案 0 :(得分:0)
首先进行n / 2 pushBack操作
然后房间里有n / 2个人
然后做n / 4(pushBack + popBack)
对于每个pushBack,分配一个大小为n的房间,并且“复制”n / 2个人
对于popBack,分配一个大小为n / 2的较小房间,并将剩下的每个n / 2人复制到其中。
对于(pushBock + popBock) - 操作有n个操作完成(应对)
所有操作的总工作量(移动除外)在O(n)
这意味着对于n次操作,至少有(n / 4)* n =Θ(n ^ 2)复制操作