17年多校训练第十一题

来源:互联网 发布:四层横移编程 编辑:程序博客网 时间:2024/06/04 19:25

这个代码超时了 我是先把袜子存入优先队列 然后把要洗的袜子存入一个队列 然后洗完再从队列里拿出来放入优先队列

代码如下

为了记下自己写的代码 这道题是有规律的

#include <cstdio>
#include <iostream>
#include <queue>
#include <algorithm>
using namespace std;
int main()
{
    int n,t=0;
    long long k;
    while(cin>>n>>k)
    {   priority_queue<int,vector<int>,greater<int> > q;
        queue<int> p;
        for(int i=1;i<=n;i++)
        {
            q.push(i);
        }
        for(long long i=0;i<k-1;i++)
        {
            if(q.size()==1)
            {
                p.push(q.top()); q.pop();
                for(int j=0;j<n-1;j++)
                {
                    q.push(p.front()); p.pop();
                }

            }
            else {p.push(q.top()); q.pop();}
        }
        cout<<q.top()<<endl;
    }
}


原创粉丝点击