快速堆猪 小明有很多猪,他喜欢玩叠猪游戏,就是将猪一头头叠起来。猪叠上去后,还可以把顶上的猪拿下来。小明知道每头猪的重量,而且他还随时想知道叠在那里的猪最轻的是多少斤。 时间限制:1000 内存限制:65536 输入 有三种输入1)push n n是整数(0<=0 <=20000),表示叠上一头重量是n斤的新猪 2)pop 表示将猪堆顶的猪赶走。如果猪堆没猪,就啥也不干 3)min 表示问现在猪堆里最轻的猪多重。如果猪堆没猪,就啥也不干 输入总数不超过100000条 输出 对每个min输入,输出答案。如果猪堆没猪,就啥也不干 样例输入 pop min push 5 push 2 push 3 min push 4 min 样例输出 2 2
正确答案:参考程序(C++):栈+辅助最小栈。用两个栈:主栈存猪重,辅助栈存当前最轻值。push时辅助栈压入min(当前,辅助栈顶);pop时两栈都弹;min直接取辅助栈顶。样例输出2、2。核心:单调辅助栈求栈内最小值。
试卷来源:202212 青少年等级考试C/C++真题七级