Processing math: 100%

12 2018 档案

摘要:解法一:后缀数组 听说后缀数组解第k小本质不同的子串是一个经典问题。 把后缀排好序后第i个串的本质不同的串的贡献就是nsa[i]+1LCP(i,i1)然后我们累加这个贡献,看到哪一个串的时候,这个贡献的和大于等于k,然后答案就在这个串里了,然后枚举就行了。 那么第k小子串该怎么办? 我们考 阅读全文
posted @ 2018-12-31 23:12 Xu-daxia 阅读(323) 评论(2) 推荐(0) 编辑
摘要:~~今天原来是平安夜啊~~ 感觉这题是道好题。 一个套路枚举权值x,把权值等于x的设为1,不等于的设为 1,然后问题转化为多少个区间权值和大于。 发现并不是很好做,还有一个套路,用前缀和查分来表示区间。然后就是 $$i include include include include incl 阅读全文
posted @ 2018-12-24 22:11 Xu-daxia 阅读(267) 评论(0) 推荐(0) 编辑
摘要:设l[i]为i左边第一个比i大的数的下标。r[i]为i右边第一个比i大的数的下标。 我们把p1,p2分开考虑。 当产生贡献为p1ij一定满足,分别为l[x],r[x]枚举每一个值为ij之间最大值可证。 党产生贡献为p2ij满足分别为$l[x] 阅读全文
posted @ 2018-12-23 21:37 Xu-daxia 阅读(232) 评论(0) 推荐(0) 编辑
摘要:听说这题的所发和 很像。 然而那道题我使用莫队写的。。。 这是一个套路,pre数组加升维(在线)。 记录一个pre数组,pre[i]代表上一个和i颜色相同的下标。 我们把询问离线,扫一遍a数组。然后每扫过一个点,就把pre[pre[i]]这个位置上减1,把pre[i]加1。然后每 阅读全文
posted @ 2018-12-23 21:21 Xu-daxia 阅读(139) 评论(0) 推荐(0) 编辑
摘要:点分治真是一个好东西。~~可惜我不会~~ 这种要求所有路经的题 很可能 是点分治。 然后我就不会了。。 既然要用点分治,就想,点分治有哪些优点?它可以O(nlogn)遍历分治树的所有子树。 那么现在的问题就是,如可快速(O(n)或O(nlogn))求以一个点为根的时候,子树之间的贡献(当 阅读全文
posted @ 2018-12-20 22:04 Xu-daxia 阅读(148) 评论(0) 推荐(0) 编辑
摘要:本蒟蒻现在才知带扩展欧拉定理。 对于任意的bφ(p)abab mod φ(p)+φ(p)(mod p) 当$b include include include include using namespace std; 阅读全文
posted @ 2018-12-20 08:39 Xu-daxia 阅读(132) 评论(0) 推荐(0) 编辑
摘要:发现每次区间加只能加1,最多全局加n次,这样的话,最后的答案是调和级数为nlogn,我们每当答案加1的时候就单点加,最多加nlogn次,复杂度可以得当保证。 然后问题就是怎么判断答案是否该加1。我们可以用线段树设初值为给出的排列,把区间加改成区间减,维护最小值。当最小值为0是遍历左右子树 阅读全文
posted @ 2018-12-20 07:36 Xu-daxia 阅读(197) 评论(0) 推荐(0) 编辑
摘要:点分树一点都不会啊(还是太菜了) 点分树就是我们点分治构成的新树。满足深度很小。 然后我们就可以在上面瞎维护东西了。 三个大根堆: C[u]里装的是点分树中u的子树所有点到点分树中u的父亲的距离。 B[u]里装的是点分树中u的所有儿子的C的最大值。 A里装的是所有B的最大值与次大值之 阅读全文
posted @ 2018-12-18 22:03 Xu-daxia 阅读(152) 评论(0) 推荐(0) 编辑
摘要:记得是9月月赛题,当时做的时候觉得跟 ZJOI2015幻想乡战略游戏 那道题很像???,就写了,~~然后就写挂了。。。~~ 我们发现假设当前点为根,我们算出m次询问中最远的a对点,如果这a对点,全部都两个点在根的不同子树中。当前点就是最优的就是答案。当全部a对点都在一个子树中,我们把 阅读全文
posted @ 2018-12-17 21:39 Xu-daxia 阅读(177) 评论(0) 推荐(0) 编辑
摘要:一开始想的是莫队,然后维护几个bitset,然后瞎搞。脑子里想了想实现,发现并不好写。 还是主席树好写。我们维护一个权值的线段树,记录每一个权值的最后一次出现的位置下标。我们查询的时候要在前r颗线段树中找到第一个出现的位置下标小于l的数,在线段树上二分就行了。 这个想法还是非常巧妙的。 cp 阅读全文
posted @ 2018-12-17 21:23 Xu-daxia 阅读(158) 评论(0) 推荐(0) 编辑
摘要:这题是莫队维护bitset。 然而我并不会bitset~~以前讲过认为不考就没学~~ 我真的太菜了。 首先维护一个权值的bitset——s。 操作3比较简单,我们可以x枚举约数然后判断就行了。 操作1就是求是否存在 a,b,ab=x 移一下项 $$a=x 阅读全文
posted @ 2018-12-16 19:51 Xu-daxia 阅读(233) 评论(1) 推荐(0) 编辑
摘要:询问的化我们可以建主席树。然后修改?,树套树。。。,最后插入?炸了。 所以我们对操作进行分块。 我们先对整棵树建一个主席树。修改,插入我们先记录下来。然后询问的时候先对主席树查询,然后暴力遍历我们记录下来的修改插入操作。每m次操作后我们重新构建一个主席树。这样我们保证了重建主席树和 阅读全文
posted @ 2018-12-15 18:43 Xu-daxia 阅读(214) 评论(0) 推荐(0) 编辑
摘要:我们可以维护一个f[i][j]代表%i意义下得j的答案。然后维护就炸了。 先设x=n然后我们发现,当ix时我们直接暴力复杂度为O(x),然后我们对ix的i维护f[i][j],这样询问复杂度O(1),维护复杂度O(x)。就可以通过此题 阅读全文
posted @ 2018-12-15 18:25 Xu-daxia 阅读(123) 评论(0) 推荐(0) 编辑
摘要:这题需要一个黑科技——摩尔投票。这是一个什么东西?一个神奇的方法求一个序列中出现次数大于长度一半的数。 简而言之就是 ; 比如有一个代表投票结果的序列。 [1,2,1,1,2,1,1] 我们记录一个numcnt先别管它们是干什么的。我们模拟一遍模拟排序。 $$首先读第一个数1,nu 阅读全文
posted @ 2018-12-15 18:16 Xu-daxia 阅读(218) 评论(0) 推荐(0) 编辑
摘要:可持久化trie树?好像和可持久化权值线段树差不多。。 如果这题没有那个x[i]这题就是一个裸的可持久化trie树。 仔细想想,多了这个x[i]之后有什么影响? 就是我们查询区间的时候区间的两个端点减去一个x[i]就行了。 但是这样我们查询的可能不是树上的一个节点了,我们在树上二分的时候 阅读全文
posted @ 2018-12-14 20:11 Xu-daxia 阅读(126) 评论(0) 推荐(0) 编辑
摘要:我们把每一次交换看做两个插入两个删除。然后就是一个三维偏序。时间一维,下标一维,权值一维。 cpp include include include include include using namespace std; const int N=100010; struct query{ int t 阅读全文
posted @ 2018-12-13 17:26 Xu-daxia 阅读(112) 评论(0) 推荐(0) 编辑
摘要:LCT,虚实链剖分。支持连边和断边操作。Tarjan制造。 [HNOI2010]弹飞绵羊 当然这题分块可以做,常数小,但是LCT更无脑。 建立一个虚拟的弹飞节点n+1,初始化时对于一个点假如再弹一次就弹飞了,连n+1,否则连弹到的点。维护一个size查询就直接split找size就行了。修改 阅读全文
posted @ 2018-12-13 11:43 Xu-daxia 阅读(183) 评论(0) 推荐(0) 编辑
摘要:(零基础者出门左拐) 最近又双叒学了主席树,打了几道模板题。 ~~感觉还行~~ 主席树,在我看来就是线段树的可持化 ~~(一开始以为主席树只是可持久化权值线段树)~~。在题目中需要建多颗线段树或权值线段树且相邻的线段树差别不大(一般就一个点不一样)时就可以用主席树。运用可持久化的思想,我们并不需要重 阅读全文
posted @ 2018-12-13 07:13 Xu-daxia 阅读(177) 评论(0) 推荐(0) 编辑
摘要:(零基础者出门左拐) 最近学了学树套树,做了几道模板题。 ~~感觉还行~~ 咳咳咳。 树套树,顾名思义,一个树套一个树。比如树状数组套平衡树,就是把树状数组的每一个结点作为一颗平衡树,线段树套权值线段树,就是一颗线段树,每一个结点都是一颗权值线段树。。。 如果有一个问题是 要求一个区间[l,r] 阅读全文
posted @ 2018-12-10 22:13 Xu-daxia 阅读(313) 评论(0) 推荐(0) 编辑

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