随笔分类 -  数据结构--栈

摘要:$n \leq 1e6$个区间,定义一个区间集合的权值为:并集大小-交集大小。求一个权值最大的大小至少为2的集合。 好题。 在一个区间集合中,可以发现除了左右端点涉及的区间外,里面剩余的区间越少,并集不会变但交集会越大,因此答案会更优。但我们需要集合大小至少为2,因此变成选两个区间。 左右端点可能涉 阅读全文
posted @ 2018-05-23 14:09 Blue233333 阅读(348) 评论(0) 推荐(0)
摘要:n<=200000个平面上的点,问有多少对点(i,j)满足Xi<Xj,Yi<Yj,且不存在k使得Xi<Xk<Xj && Yi<Yk<Yj。保证Xi,Yi互不相同。 看起来像一个偏序问题,先按Xi排序然后分治来做,但是那坨长长的东西怎么搞呢?试了若干种方法,不会,看题解。 首先Y这一维是要满足的,所以 阅读全文
posted @ 2017-11-27 18:31 Blue233333 阅读(345) 评论(3) 推荐(0)
摘要:给个长度<=1e5的串s,再给n个模板串总长不超1e5,每次把s中起始位置最早的一个模板串删掉,求最后剩的串。 AC自动机,开个栈记一下每次走到哪里,匹配成功后直接在栈里找到这一串的初始位置对应自动机上的节点,从而回到刚才的样子就行了。 1 #include<stdio.h> 2 #include< 阅读全文
posted @ 2017-09-03 22:27 Blue233333 阅读(202) 评论(0) 推荐(0)
摘要:题目大意:n个数,每个数的权值会传给它左右严格大于它的第一个数,求每个数被传到的权值总和。 题解: 方法一:如果对于某个数,它左右的最大值都≤它自己,那么它左边就不用传;否则就要传给最接近它的大于它的数。由于需要询问最大值,可用RMQ预处理一波,然后二分地查找:若区间内最大值≤那个“它”,该区间就没 阅读全文
posted @ 2016-12-12 12:57 Blue233333 阅读(317) 评论(0) 推荐(0)