就是一个简单的约瑟夫环问题,
要求输出每次被淘汰的人。
估计很多人交错的原因就是时间超限(我也T了一发)
由于给的Ai。数据会很大1 ≤ ai ≤ 109,
可以每次把Ai对对列长度取一下余;
就可以解决时间超限的问题。
AC代码:
#include <iostream>
#include<algorithm>
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<deque>
using namespace std;
int main()
{
int n,i,j,k,a[210000],b[210000],x,y,z,m;
deque<int>p;
while(scanf("%d%d",&n,&m)!=EOF)
{
for(i=0;i<m;i++)
{
scanf("%d",&a[i]);
}
for(i=1;i<=n;i++)
p.push_back(i);
for(i=0;i<m;i++)
{
a[i]%=p.size();
for(j=1;j<=a[i];j++)
{
p.push_back(p.front());
p.pop_front();
}
if(i==0)
printf("%d",p.front());
else
printf(" %d",p.front());
p.pop_front();
}
}
return 0;
}点击打开链接