本文主要是介绍Gym - 100623B Billboard【线段树】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目链接:https://vjudge.net/problem/Gym-100623B
题意:有一个h层的柜子,每层只能放重量不超过w的东西,现在给你n个物体,从上往下放,让你输出每一个物体放在第几层,如果放不下就输出-1
解析:一开始我们队的想法是用优先队列找最小值,不过发现当前的最小值不一定是不是层数最小的那个,最后觉得像线段树,也就是区间查询最小值,判断那个区间(1~h)是否能放a[i]上去,反正就这样一直维护就好了,不过要注意,其实他层数最大是n(2e5),而不会达到1e9,所以一开始需要取一下最小值,不然会RE
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <vector>
#include <cstring>
#include <queue>
using
这篇关于Gym - 100623B Billboard【线段树】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!