题解
2024-04-13 11:47:40
发布于:广东
6阅读
0回复
0点赞
#include<bits/stdc++.h>
#include<queue>
using namespace std;
int t,n;
int main()
{
cin>>t;
while(t--)
{
queue<int>q;
cin>>n;
for(int i=1;i<=n;++i) q.push(i);
int cnt=1,sum;
while(q.size()>3)
{
sum=q.size();
if(cnt%2==1)
{
for(int i=0;i<sum/2;++i)
{
q.push(q.front());
q.pop();
q.pop();
}
if(sum%2==1)
{
q.push(q.front());
q.pop();
}
}
else
{
for(int i=1;i<=sum/3;++i)
{
q.push(q.front());
q.pop();
q.push(q.front());
q.pop();
q.pop();
}
while(sum%3!=0)
{
sum--;
q.push(q.front());
q.pop();
}
}
cnt++;
}
while(q.size()!=1){
cout<<q.front()<<" ";
q.pop();
}
cout<<q.front()<<endl;
}
return 0;
}
全部评论 1
潮水你快通过我微信!!!
2024-08-16 来自 浙江
0
有帮助,赞一个