美文网首页
1050.二哥的优先队列

1050.二哥的优先队列

作者: 小路子好 | 来源:发表于2019-01-21 19:50 被阅读0次

Description

二哥把所有女朋友候选人列了出来,一共有N组,编号为0~N-1。最开始的时候每组只有1个女生,每个女生有一个魅力值。二哥不断进行以下三种操作:
将一组并入另一组
将一组中魅力值最小的拿走
给某一组中添加一个女生
值得注意的是,如果X组在操作0中被并入其他组,那么二哥将不会再对X组进行这三种操作。

Input Format

第一行:N M(0≤N,M≤300,000 )分别表示最开始的组数与总的操作的次数
接下来N行每行一个整数,表示最初0~N-1组中那个女生的魅力值接下来M行
每行首先是一个整数,表示操作编号,0表示合并,1表示拿走魅力值最小的,2表示添加
对于操作0,跟着两个整数,a b,表示将编号为b的组并入编号为a的组(编号为b的组从此消失了)对于操作1,跟着一个整数,a,表示讲编号为a的组中魅力值最小的女生拿走
对于操作2,跟着两个整数,a b,表示在编号为a的组中添加一个魅力值为b的女生

Output Format

对于每个操作1,输出一行,包含一个整数,表示被拿走的女生的魅力值(如果二哥妄图从一组已经没有人的组内拿走女生,请输出-1)Sample ##Input

5 9
0
36
49
98
3
1 4
0 2 4
1 1
0 0 3
1 0
0 1 2
0 0 1
2 0 15
1 0

Sample Output

3
36
0
15

代码

#include<iostream>
#include<queue>
using namespace std;
int main()
{
    int N,M;//最开始的组数和总操作次数
    cin>>N>>M;
    priority_queue <int,vector<int>,greater<int>>  *Group = new priority_queue <int,vector<int>,greater<int>> [N];
    for(int i=0;i<N;i++)
    {
        int priority;
        cin>>priority; //魅力值
        Group[i].push(priority);
    }
    for(int i=0;i<M;i++)
    {
        int opt;
        cin>>opt;
        if(opt==1)  //一个操作数
        {
            int OptNum;
            cin>>OptNum;
            if(!Group[OptNum].empty() )
            {
                int pop = Group[OptNum].top();
                Group[OptNum].pop();
                cout<<pop<<endl;
            }

            else cout<<"-1"<<endl;
        }
        else if(opt==0)
        {    //两个操作数
            int OptNum1;
            int OptNum2;
            cin>>OptNum1;
            cin>>OptNum2;
            while(!Group[OptNum2].empty())
            {
                int temp= Group[OptNum2].top();
                Group[OptNum2].pop();
                Group[OptNum1].push(temp);
            }
        }
        else{
             int OptNum1;
             int OptNum2;
             cin>>OptNum1;
             cin>>OptNum2;
             Group[OptNum1].push(OptNum2);

        }
    }

    delete [] Group;
    return 0;
}

备注:这题有一例不通过,只能得90

相关文章

网友评论

      本文标题:1050.二哥的优先队列

      本文链接:https://www.haomeiwen.com/subject/injhjqtx.html