随笔分类 -  数据结构-单调队列/栈

摘要:"题目链接" "双倍经验" 设$H$表示长,$W$表示宽。 若$H_i include using namespace std; const int MAXN = 50010; define ll long long inline ll min(const ll a, const ll b){ re 阅读全文
posted @ 2019-01-27 22:02 Qihoo360 阅读(117) 评论(0) 推荐(0)
摘要:"题目链接" 把线段以斜率为第一关键字,截距为第二关键字升序排序。 然后维护一个单调栈,保证栈中两两线段的交点的$x$坐标单调上升就行了。栈中的线段即为所求。 cpp include include using namespace std; const int MAXN = 50010; struc 阅读全文
posted @ 2019-01-26 09:15 Qihoo360 阅读(168) 评论(0) 推荐(0)
摘要:"题目链接" 开始还以为是尺取。发现行不通。 一看标签二分答案,恍然大悟。 二分一个$mid$(实数),把数列里每个数减去$mid$,然后求前缀和,在用单调队列维护$sum[i t\text{~}i s]$的最小值,用$sum[i]$减去它,如果大于等于$0$就说明$mid$可行。 阅读全文
posted @ 2018-12-30 15:35 Qihoo360 阅读(187) 评论(0) 推荐(0)

You're powerful!