07 2019 档案

摘要:子串去重相关。 直接上题: 有一个 [1,n] 的字符串,求 [L,R] 区间内不重复子串数 思路 :把原串哈希,然后在原串范围内,判断每一个串 [l,r] 是否重复(可 bool 数组记录),若重复将所有包含此区间的区间 [i,j] 的 $g_{i,j} (i \in [1,l 阅读全文
posted @ 2019-07-14 09:37 四氧化二磷 阅读(104) 评论(0) 推荐(0) 编辑
摘要:循环节相关。 解决此类问题一般有两种方法。 KMP 我们知道,对于 KMP 算法而言,nxt[i] 要记录的是区间 [1,i1] 的最长共同前后缀。那么对于 nxt[] 中的 i,若符合 i % (inxt[i])==0nxt[i]!=0 , 则 阅读全文
posted @ 2019-07-14 09:11 四氧化二磷 阅读(147) 评论(0) 推荐(0) 编辑
摘要:所谓凸包,就是给你一堆点,让你找一个最小的凸多边形(二维),使其包含所有点。这个凸多边形就是这些点的凸包。可以理解为是用橡皮筋把很多钉子围住的状态。 这些是凸包: 这些不是: 那么我们如何构造凸包呢?可以看出,如果我们按 x 排序的话,我甚至不想证明,最左和最右端点一定在凸包上。这样我们就可以把 阅读全文
posted @ 2019-07-13 16:15 四氧化二磷 阅读(155) 评论(0) 推荐(0) 编辑
摘要:T1 20' : 手推 80' : 由 20 做法可知,我们可以建一个分层图,每一层的节点都与上一层,下一层的所有节点联通,且最上面一层为节点 1 ,最下面一层为节点 n 。因为最短路径不考虑环,可以证明当前从 1n 的任一路径均为最短路,且值为各层节点数代数积。 100 阅读全文
posted @ 2019-07-12 19:39 四氧化二磷 阅读(157) 评论(0) 推荐(0) 编辑
摘要:折半思想和倍增思想不是同一种思想,但思想接近,并且都是优化程序的黑科技。 折半 即传说中的 Meet in the middle , 核心思想就是将原问题分成两个或多个部分,分别解决各个部分后合并。 适用范围 这种思想一般被广泛运用于优雅的暴力,比如暴搜。当然还可以和乘法逆元之类的东 阅读全文
posted @ 2019-07-12 11:09 四氧化二磷 阅读(121) 评论(0) 推荐(0) 编辑
摘要:CDQ算法据说是对付离线操作下修改查询问题的重要工具,是基于分治算法的降维操作。 CDQ算法核心思想只有三步:递归处理左区间,处理左区间对右区间的影响,递归处理右区间。原理的话按照我这个蒟蒻的理解就是在完成任意查询操作前完成此查询操作前的修改操作,并且因为是基于分治算法,一定严格按照顺序完成查询操作 阅读全文
posted @ 2019-07-11 09:50 四氧化二磷 阅读(207) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示