魔法师与扑克牌游戏
测试数据来自 wjszez/2062
魔法师在玩一种扑克牌游戏,n张扑克分别记上1,2,……,n,他打开第一张是1,把它放在一边,然后把最上面2张一张一张地依次移到最后,打开上面一张刚好是2,再放在一边;然后把上面3张一张一张移到最后,打开上面一张刚好是3,再放到一边;……,如此继续下去,直到打开最后一张是n,放在一边,这时他发现,放在一边的扑克刚好是1,2,……,n这样排列的。这些扑克原来是怎么排列的?请程序完成这个任务(n <= 10000)。
输入样例1:5
输出样例1:1 4 5 2 3
输入样例2:9
输出样例2:1 8 6 2 9 4 5 3 7
70%的数据 n <= 100
100%的数据 n <= 10000
思路点拨:扑克原位置序号为1~n,第一个取出的是第一张,将其余n-1个位置序号依次入队q,按照要求,分别将2、3,4……张移入队尾后,每次从队头取出一张,把取出的位置序号依次存入数组b中,b[i]代表第i张取出的牌的原位置序号。用c[i]表示第i张牌的码值,因为第i张取出的牌为i,所以c[b[i]] = i。
对于70%的数据直接使用普通队列模拟即可,如果100%的数据建议使用循环队列完成。
信息
- ID
- 2471
- 难度
- 10
- 分类
- (无)
- 标签
- 递交数
- 1
- 已通过
- 0
- 通过率
- 0%
- 上传者