单调栈
sillyf
这个作者很懒,什么都没留下…
展开
-
BZOJ 1007: [HNOI2008]水平可见直线
这题应该和计算几何扯得上关系吧。 yz哥哥叫我多做题 由题意,显然最后得到的可以看到的直线会形成一个拥有类似凸包性质的折线。 做法也大致出来了:按斜率的大小枚举直线,用栈维护,每次用栈顶的两个元素代表的直线的交点和将加入的元素与栈顶元素的交点的x坐标进行比较,如果后者小于或等于前者,则栈顶元素出栈,重复至栈中元素只有一个或满足上述的条件。 如果两条直线斜率相同,显然要取就只原创 2017-03-28 17:45:49 · 368 阅读 · 0 评论 -
BZOJ 1113: [Poi2008]海报PLA
水题 记得当初考试的时候是用堆水过去的... 正解单调栈 #include using namespace std; int n,top,ans; int s[250001]; int main() { scanf("%d",&n); for(int i=1;i<=n;++i) { int x,y; scanf("%d %d",原创 2017-07-15 18:23:04 · 232 阅读 · 0 评论 -
51nod 1482 部落信号[单调栈]
题目大意 在一个环上有n(3≤n≤106)n(3\leq n \leq 10^6)个整数a[i](1≤a[i]≤109)a[i](1\leq a[i] \leq 10^9),统计有序点对(x,y)(x,y)的个数使 连接xx和yy的其中一段圆弧上的所有a[i]≤min(a[x],a[y])a[i] \leq min(a[x],a[y]).原创 2017-10-14 18:07:16 · 309 阅读 · 0 评论 -
51nod 1288 汽油补给[贪心][st表][单调栈]
题面 考虑走到第i个城市,接下来,如果在装满油箱的情况下能走到的城市中,有油价比城市i低的城市:就加油到可以到这个城市为止然后过去 否则在当前城市加满油继续 对于油价可以用st表维护最小值 每个城市可以到的城市可以用单调栈预处理出来#include<cstdio> #include<cmath> #define N 100000 #define LL long long using name原创 2017-10-24 13:27:46 · 304 阅读 · 0 评论