Problem Description
某部队进行新兵队列训练,将新兵从一开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列,剩下的向小序号方向靠拢,再从头开始进行一至三报数,凡报到三的出列,剩下的向小序号方向靠拢,继续从头开始进行一至二报数。。。,以后从头开始轮流进行一至二报数、一至三报数直到剩下的人数不超过三人为止。
Input
本题有多个测试数据组,第一行为组数N,接着为N行新兵人数,新兵人数不超过5000。
Output
Sample Input
Sample Output
分析题意:
- 将n个数依次按1,2,1,2,1,2… … 标号,然后删除下标为2的数
- 再将剩下的数依次按1,2,3,1,2,3… … 标号,然后删除下标为3的数
- 循环以上两步
注意:
- erase( it )的作用是删除迭代器指向的当前元素,并返回该迭代器下一参数的迭代器。写法:it = li.erase(it);
- 注意最后一个元素后不能带空格,格式问题
AC代码
本题需要着重理解以下代码如何做到轮流对2和3取模,并且上轮删除对2取模为0的数,下轮删除对3取模为0的数
到此这篇环形队列的基本运算(环形队列的基本运算方法)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/76178.html