[Codeforces777a]Shell Game
题意
游戏规则:三个杯子一个球,知道杯子交换的次数和最后球所在的位置,问初始球在哪一个杯子中。
杯子交换的规制:
- 左边杯子和中间的杯子交换(第奇数次交换)
- 右边杯子和中间的杯子交换(第偶数次交换)
思路
由于杯子数目是固定的,且交换有规则,可以先尝试下前几次交换的情况
初始 0 1 2
- 第一次交换 1 0 2
- 第二次交换 1 2 0
- 第三次交换 2 1 0
- 第四次交换 2 0 1
- 第五次交换 0 2 1
- 第六次交换 0 1 2
发现6次交换后杯子又恢复到初始的位置
所以可以将这6种情况的位置情况存到一个二维数组ans[][],根据交换次数n和最终位置x可得出初始位置是ans[n%6][x]
代码
|
|