CF949B A Leapfrog in the Array

深碍√TFBOYSˉ_ 2022-05-24 07:42 224阅读 0赞

题意:

Dima是一名初级程序员。 在他的工作中,他经常不断地重复以下操作:从数组中删除每个第二个元素。 有一天,他对这个问题的解决方案感到厌倦,他提出了以下华丽的算法。
假设有一长度为2n的数组,最初的数组包含从1到n的n个数字,数字i位于序号为2i - 1的单元格中(序号从1开始编号),并且数组的其他单元格为空。每个步骤你需要选择一个最大序号的非空单元格,并将其中的数字移动到它左边最近的空单元格。一直循环该过程,直到所有n个数字出现在数组的前n个单元格中。例如,如果n = 4,则数组更改如下:
这里写图片描述
您必须编写一个程序,输出在该算法完成后,序号为x(1≤x≤n)的单元格中的数字。

输入格式:

第一行包含两个整数n和q(1≤n≤1e18,1≤q≤200 000),数组中元素的数量以及查询数量。
接下来的q行包含一个整数xi(1≤xi≤n),xi为算法完成后,第xi个单元格。

输出格式:

对于q个查询中的每一个,输出一个整数,即相应数组单元格中的值。

样例:

  1. inputCopy
  2. 4 3
  3. 2
  4. 3
  5. 4
  6. outputCopy
  7. 3
  8. 2
  9. 4
  10. inputCopy
  11. 13 4
  12. 10
  13. 5
  14. 4
  15. 8
  16. outputCopy
  17. 13
  18. 3
  19. 8
  20. 9

发表评论

表情:
评论列表 (有 0 条评论,224人围观)

还没有评论,来说两句吧...

相关阅读

    相关 CF#581(Div.2)】A&B

    date:2019.8.20 我第一次打CF的比赛,感觉题目非常新颖并且非常棒,但是由于翻译软件不太给力所以我对题意的理解也不是很透彻,最后我做出了前两道题,感觉还可以吧

    相关 CF949B A Leapfrog in the Array

    题意: Dima是一名初级程序员。 在他的工作中,他经常不断地重复以下操作:从数组中删除每个第二个元素。 有一天,他对这个问题的解决方案感到厌倦,他提出了以下华丽的算法。

    相关 CF949A Zebras

    题意: Oleg记录下了他每天的运气是好还是坏。Oleg定义“斑马”为一个非空序列,它开始于糟糕的一天,以糟糕的一天结束,好的和坏的日子交替出现。让我们将不好的日子表示为

    相关 CF623B Array GCD

    [CF623B Array GCD][] > 给定一个序列 \\(a\_i\\) ,可以进行一下两种操作: > > 删除一段长度为 \\(m\\) 的区间 \\((m