
倍增
文章平均质量分 77
Miao_zc
膜Hz
展开
-
bzoj4569: [Scoi2016]萌萌哒
一个简单的想法是对每一位用并查集,但是显然会TLE,因为同样的位可以被合并多次。考虑ST表的思路,维护logn个并查集,暴力修改。如果上一层已合并,就不用到下层了,这样最多合并nlogn次,时间复杂度正常。 #include #include #include #define N 100005 #define MO 1000000007 using namespace std; int原创 2016-05-25 09:57:09 · 615 阅读 · 0 评论 -
bzoj4650: [Noi2016]优秀的拆分
此题有95分暴力。。。 发现AABB的统计相当于对AA的统计。于是可以计算出每个点左侧为AA的方案数。枚举|A|,将字符串分成长度为|A|的小段,当AA中点在小段中的情况可以利用SA+rmq,O(1)求。于是就能在O(n/1+n/2+...+n/n)=O(nlogn)内求解。 #include #include #include #define N 80005 using namespace原创 2016-08-03 21:01:31 · 930 阅读 · 0 评论 -
bzoj1178: [Apio2009]CONVENTION会议中心
这题有点强,一句话题意:求字典序最小的线段覆盖(这里的字典序指选择的线段的编号排序后的字典序)。 如果不要求字典序只需要对左(右)端点排序,然后贪心取即可。 一开始我想到的是DP,但是字典序存在了不可避免的后效性,看了题解之后,才有了思路。 先离散,要使字典序最小优先选序号小的,然后判断选取某一个之后最优解是否改变。接下来就是怎么O(logn)求区间内线段覆盖。(具体做法搜索ppt。。。原创 2016-12-08 16:46:19 · 1407 阅读 · 0 评论 -
cf757G. Can Bash Save the Day?
简述题意:给一棵n个节点的数和一个n的数组(n的排列),支持两个操作:1 询问a[l]~a[r]的所有点到某个点的距离,2 交换a[x]与a[x+1]。 一开始想到了这道题bzoj4012: [HNOI2015]开店,大概看了之后发现是开店的加强版。我想到像开店一样使用主席树处理,显然操作2很容易。然而 他的时间是一个log。大概看了题解,感觉套路~ 毕竟开店的题解大多是log^2。。原创 2017-03-02 16:11:23 · 987 阅读 · 0 评论 -
bzoj4964: 加长的咒语
求区间最长括号序列子串。 很有意思的括号,但是我有些细节没处理好,导致代码长,算法复杂。。 如果有更好的算法我也很想知道啊>. 考虑一个括号序列A=(B1)(B2)(B3)…,其中与某个括号匹配的相对的括号唯一。证明显然。 有一个显然的算法:用栈判断一个字符串是否为括号序列。 考虑拓展这个结论:对任意括号串的某个括号序列子串,某个括号匹配的相对的括号唯一。证明显然。 既然这样就随原创 2017-08-11 10:51:41 · 783 阅读 · 0 评论