数据结构
_Rikka_
- v -
展开
-
1498B - Box Fitting (优先队列)
题目思路:开一个优先队列存放每一行(高度1)还剩余的长度,将所有的木块从大到小排序,1开始遍历,如果优先队列中还能容纳最大的长度比当前木块大则加入到当前高度所在行,否则另开一行存放。Code:#include<iostream>#include<algorithm>#include<set>#define ll long longusing namespace std;const int Max = 1e6 + 5;int lst[Max];int原创 2021-03-30 14:04:15 · 676 阅读 · 0 评论 -
1506E Restoring the Permutation (优先队列)
题目思路:首先可以肯定的是,在某个数第一次出现时,在那个位置一定要填该数,因为它更新了那个最大的数,这些数的位置是固定的。对于求最小的情况,只需从1–n开始填那些不是固定的数空出来的地方,如果该数是上文提到的固定的数则跳过。对于求最大的情况,创建一个multiset(当作一个优先队列来使用,按降序排列),从开始的位置1遍历到n,如果遇到一个固定的数则输出该数,然后将该数之前到上一个固定数之间的数insert进multiset。如果该位置不是固定的数,则将multiset中最大的数输出,然后erase掉原创 2021-03-26 12:01:05 · 250 阅读 · 0 评论