为什么这个代码提交会运行超时(P8671 [蓝桥杯 2018 国 AC] 约瑟夫环)
int main()
{
int a[1000001]={0};
int n,m;
cin>>n>>m;
int t=0;
int k=-1;
while(t<n-1)
{
int i=0;
while(i1)%n;
if(a[k]==0)
{
i++;
if(i==m)
{
a[k]=-1;
t++;
}
}
}
}
for(int i=0;i<n;i++)
{
if(a[i]==0)
{
printf("%d\n",i+1);
break;
}
}
return 0;
}
用循环链表
数组开的太大了: int a[1000001]={0}; 如果一定要这么大,把这句放到main()函数前面定义。