网易构造队列

来源:互联网 发布:jcl外国语学院知乎 编辑:程序博客网 时间:2024/05/24 05:36
#include<bits/stdc++.h>using namespace std;int main(){    int T;    cin>>T;    while(T--)    {        int n;        cin>>n;        vector<int>v;        queue<int>Q;        int i,j;        for(i=0; i<n; i++)            Q.push(i);        while(!Q.empty())              //队列不空,执行循环        {            int x=Q.front();            //取出当前队头的值x            Q.pop();                 //弹出当前队头            Q.push(x);               //把x放入队尾            x = Q.front();              //取出这时候队头的值            v.push_back(x);            Q.pop();                 //弹出这时候的队头        }        vector<int>ans(n);        for(i=0; i<n; i++)            ans[v[i]]=i;        for(i=0; i<n; i++)        {            if(i!=n-1)cout<<ans[i]+1<<" ";            else cout<<ans[i]+1<<endl;        }    }    return 0;}

原创粉丝点击