![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
栈
goto_1600
我何来寂寞,哪有寂寞可言。
展开
-
河南省省赛 甜甜圈(思维+隔板+线段树)
题意:给定两个栈,每次操作可以花费一个代价将栈顶的元素放到另一个栈的栈顶,如果当前序列的最大值是栈顶,可以0花费将这个最大值弹出。问最少操作多少次。思路:由于这样操作的序列是确定的,那么就没有贪心的成分所在了,就是想着怎么模拟了,一开始想用平衡树,由于某个数的上面的一堆数放到隔壁堆中,实现翻转,对于隔壁堆下面的所有元素,都加上size,但是没必要,看了标程,其实可以实现这样的操作。将所有数按照值大小,从大到小排序,维护每一个id,然后每次都维护当前板所在的位置,最后实现一个线段树单点修改区间查询.原创 2021-05-31 23:37:24 · 234 阅读 · 0 评论 -
单调栈
题目给定一个长度为N的整数数列,输出每个数左边第一个比它小的数,如果不存在则输出-1。输入格式第一行包含整数N,表示数列长度。第二行包含N个整数,表示整数数列。输出格式共一行,包含N个整数,其中第i个数表示第i个数的左边第一个比它小的数,如果不存在则输出-1。数据范围1≤N≤1051≤N≤1051≤数列中元素≤1091≤数列中元素≤109输入样例:53 4 2 7 5输出...原创 2020-02-04 17:04:21 · 196 阅读 · 0 评论