2981. 零食

Fifnmar

把楼上的代码补一下。

#include "bits/stdc++.h"
using namespace std;
using u32 = uint32_t;

int main() {
    u32 t;
    cin >> t;
    for (u32 i = 0; i != t; ++i) {
        cout << "case #" << i << ":\n";
        u32 n;
        cin >> n;
        priority_queue<u32, vector<u32>, greater<>> snacks;
        for (u32 i = 0; i != n; ++i) {
            char order;
            cin >> order;
            if (order == 'B') {
                u32 p;
                cin >> p;
                snacks.push(p);
            } else {
                cout << snacks.top() << '\n';
                snacks.pop();
            }
        }
    }
}
Li Dao

题解

include

using namespace std;
int T,n;
priority_queue, greater\ > Q;
int main()
{
cin>>T;
for(int step=0;step>n;
printf(“case #%d:\n”,step);
while(!Q.empty()) Q.pop();
for(int i=1;i<=n;i++)
{
string aa;
cin>>aa;
if(aa[0]==’B’)
{
int xx;cin>>xx;
Q.push(xx);
}
else
{
int tmp=Q.top();Q.pop();
cout<<tmp<<endl;
}
}

}
return 0;
}

这题明显考优先队列(堆),其他方法也能做但麻烦

priority_queue, greater\ > Q;
从小到大排序的优先队列这么写

kingno

编号是”case #i:”
一行输出一个价格,不是一行输出本轮操作的所有价格

你当前正在回复 博客/题目
存在问题!