上一页 1 ··· 21 22 23 24 25 26 27 28 29 ··· 35 下一页
摘要: 传送门 这道题也是很简单的树剖啊……(虽然说大佬们都用了什么树上差分……但是这题暴力树剖真能过) 其实N = 300000有点卡nlog^2n,不过这题数据好像比较水还是能过的。 直接用树剖维护,每次走过一条路径就把上面所有的点值全部++,最后输出每个点被走过多少次即可。 不过这里就有了BUG!我们 阅读全文
posted @ 2018-09-27 00:38 CaptainLi 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 传送门 这个题还是树剖的基本练习,不过线段树维护的东西复杂了一些。 还是树剖起手,之后我们要在线段树中维护当前区间内颜色个数,最靠左的颜色和最靠右的颜色。这样的话我们在合并的时候,如果左区间最靠右颜色和右区间最靠左颜色是相同的话,那么这个合并之后的区间的颜色个数要-1(因为原来计算的方法是左右两区间 阅读全文
posted @ 2018-09-27 00:30 CaptainLi 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 传送门 最近学了树剖我们来做几道题练练手。 这个题我觉得也是板子题啊…… 反正就是对于一个安装操作,就在它自己所在链向上跳,如果当前链顶已经被安装的话计算一下从这个点到链顶还有多少没被安装即可。每次向上跳的时候都要把经过的链上的点全改为1.至于卸载操作就更简单了,直接先统计自己子树内有多少节点值为1 阅读全文
posted @ 2018-09-27 00:24 CaptainLi 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 什么是可持久化数据结构呢? 简单一点来说,就是能支持访问以往某个版本的数据的数据结构,当然我的总结并没有那么贴切…… 我们以这样一个事来引入吧!记得上学期的时候上数学课学统计,听辉哥在上面讲课,我在下面突然想到,能否写一种数据结构,能够快速访问每一个给定区间的中位数是多少? 考虑最暴力的做法就是每次 阅读全文
posted @ 2018-09-24 18:45 CaptainLi 阅读(2212) 评论(0) 推荐(1) 编辑
摘要: 传送门 开始总结一下树剖!树剖好像大概两个月前就接触了……当时没怎么听懂,也许是底子太差了。这段时间多练了练树形DP之类的,现在觉得非常好理解。 树链剖分,简单的来说就是把树拆成链分别维护,以降低维护的复杂度。 首先要说一下,树剖本身并不是什么难的东西,其实只要两遍dfs,至于代码为什么特别长,那是 阅读全文
posted @ 2018-09-24 00:20 CaptainLi 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 传送门 我们看一下这个题的要求。首先就是我们只可以买一次,卖一次,而且我们还必须得到达终点,那我们不妨进行两遍最短路,第一次计算从起始点开始到所有点能买物品的最低价格(用dis[i]表示),第二次计算从终点到所有点能卖物品的最高价格(用dis1[i]表示)。这样两遍跑一次然后结果就是max(dis1 阅读全文
posted @ 2018-09-21 14:27 CaptainLi 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 传送门 给定一个n元一次方程组求解。 首先我们思考一下,自己解普通的二元一次方程组的时候是怎么解的? 我们肯定是要先用一个变量表示另一个变量,换句话说,先进行消元,然后转变为一元一次方程求解。 我们一般有两种做法,加减消元或者带入消元。(这里以二元一次方程组为例,多元的也一样) 但是我们在使用程序计 阅读全文
posted @ 2018-09-21 14:16 CaptainLi 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 传送门 Manacher算法是解决回文串长度计算的利器。 优秀的算法大多起源于暴力的思想……我们一步一步来看。 首先思考最暴力的情况怎么匹配?枚举所有区间然后判断是不是回文串,时间复杂度O(n^3). 之后我们考虑优化一下。因为回文串的左右是相同的,所以我们不妨可以枚举回文串的中点,之后向两边依次拓 阅读全文
posted @ 2018-09-21 13:46 CaptainLi 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 传送门 这道题看起来十分的不可做……可能是我数学太差智商太低了orz。 首先如果一个人的家和办公室在同一侧那就完全不用考虑,把结果记下来就行。 然后我们先考虑k=1的情况。因为只能建1座桥,那么我们发现(除去过桥一个单位长度不算)答案就是sigma(abs(ai-x) + abs(bi-x)),其中 阅读全文
posted @ 2018-09-20 18:00 CaptainLi 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 传送门 这题的思路还是很清晰的,就是把图建出来之后用tarjan缩点,之后在DAG中用DP(或者说dfs)求出最长路就可以啦。 不过事情是不会像想象中那么简单的。 这个题目的图在建立的时候非常麻烦……首先我们不可能挨个枚举,这样复杂的最坏到O(n^2),建图都已经T了就没什么可做的了。 所以我们考虑 阅读全文
posted @ 2018-09-20 15:41 CaptainLi 阅读(155) 评论(0) 推荐(0) 编辑
上一页 1 ··· 21 22 23 24 25 26 27 28 29 ··· 35 下一页