循环链表
int ne[1000005];
inline void solve()
{
int n, m;
cin >> n >> m;
for (int i = 0; i < n; i++)
ne[i] = i + 1;
ne[n] = 1;
int p = 0;
for (int i = 1; i <= n; i++)
{
for (int j = 1; j < m; j++)
p = ne[p];
cout << p[ne] << " ";
ne[p] = ne[ne[p]];
}
}
队列
queue<int> a;
inline void solve()
{
int n, m;
cin >> n >> m;
ff(i,n)
a.push(i);
int k = 1;
while(!a.empty()){
if(k==m){
cout << a.front() << " ";
a.pop();
k = 1;
}
else {
k++;
a.push(a.front()); // 把head压进队尾
a.pop();
}
}
}