随笔分类 - 数据结构
摘要:题目链接 题目大意:给出一段长度为$100000$的初始值为$3$的序列。有两种操作:1.把$a_x$的值改为$y$;2.求$\varphi (\prod _{i=l}^r a_i)\mod \ 19961993$的值。 题目比较显然,可以用线段树维护区间积。 欧拉函数的通式:$\varphi (n
阅读全文
摘要:前言:毒瘤数据结构题,半个下午都在搞它了…… 题目链接 题目大意:给定一个长度为$n$的序列,有两种操作:1.把$a_x$的值改成$y$。2.求一个最小的$p$使得$gcd(a_0,a_1,\cdots ,a_p)*XOR(a_0,a_1,\cdots ,a_p)=x$。 这种数据结构题一般只能用分
阅读全文
摘要:题目链接 给定一张含$n$个点$m$条边的无向图,每个点有一个重要指数$a_i$。有两种操作:1.在$x$和$y$之间连一条边;2.求$x$所在连通块中重要程度第$k$小的点。 维护第$k$小,很容易想到权值线段树。看到合并二字,可以想到用线段树合并的方法。维护连通块可以用并查集做。 注意并查集合并
阅读全文
摘要:题目链接 题目大意:给定$n$个区间$[l_i,r_i]$,选出$m$个区间使它们有一个共同的位置$x$,且使它们产生的费用最小。求最小费用。费用定义为最长的区间长度减去最短区间长度。 因为区间顺序改动又不影响答案,我们不妨按照长度排个序。看到数据范围果断离散化。 思考一种最朴素的做法:将排好序的区
阅读全文
摘要:题目链接 题目大意:给定一个长度为$n$的序列${a_i}$。现在有$m$个区间$[l_i,r_i]$和$q$个操作,每次选取一个$x$使得$a_x--$。问每一次操作后区间和为$0$的区间个数。 可以用主席树解决,但蒟蒻不会,蒟蒻只会写线段树QAQ。 对于每一个区间$[l_i,r_i]$,我们可以
阅读全文
摘要:题目链接 题目大意:给出一颗含有$n$个结点的树,每个节点有一个颜色。求树中每个子树最多的颜色的编号和。 树上启发式合并(dsu on tree)。 我们先考虑暴力怎么做。遍历整颗树,暴力枚举子树然后用桶维护颜色个数。这样做是$O(n^2)$的,显然会T。我们需要一种更快的算法:树上启发式合并。 关
阅读全文
摘要:对于询问$[1,n]$的第$k$小数,我们都知道直接上权值线段树就行了。那么对于任意区间的第$k$小数呢? 暴力一点,每次开一颗线段树。空间肯定爆炸。那么此时,主席树便应运而生。 主席树的主要思想就是:保留每次插入操作时的历史版本,以便查询区间第$k$小的数。先说流程。 1.先建一颗空的权值线段树,
阅读全文
摘要:前言:其实就是主席树板子啦……只不过变成了树上的查询 题目链接 题目大意:求树上$u$到$v$路径第$k$大数。 查询静态区间第$k$大肯定是用主席树。我们知道主席树有着优秀的性质:对于前缀和和树上差分等操作都是满足的。感性理解一下:我们在打主席树板子的时候,每次查询都是$query(rt[l-1]
阅读全文
摘要:前言:蒟蒻太弱了,全打的暴力QAQ。 T1 小Z的求和 题目大意:求$\sum\limits_{i=1}^n \sum\limits_{j=i}^n kth\max(a_i,a_{i+1},\cdots ,a_j)+kth\min(a_i,a_{i+1},\cdots ,a_j)$。其中$kthma
阅读全文
摘要:前言:前辈讲课时设的状态还是有些繁琐,感觉题解设的状态更简洁。 题目链接 题目大意:给定$n$条道路和$m$场比赛,每个道路修建需要$c_i$,每场比赛需要使用$[l_i,r_i]$内的道路,收益为$p_i$。问最大收益。$n,m\leq 200000$ 先将所有的区间右端点从小到大排序。 设$f[
阅读全文
摘要:T1 sign 题目大意:给出一棵 N 个节点的树,求所有起点为叶节点的有向路径,其 上每一条边权值和的和。N<=10000 水题。考试的时候毒瘤出题人(学长orz)把读入顺序改了一下,于是很多人爆零(包括我QAQ。 先dfs序把以$i$为根的子树大小$size[i]$和所含叶子结点个数$s[i]$
阅读全文
摘要:前言:其实这个题是用LCT做的,但蒟蒻因为太弱了,只会分块QAQ。 题目链接 题目大意:给定$n$个装置,每个装置有弹力系数$k_i$,即在这个位置上会被弹到$i+k_i$。现在有两个操作:1.修改某个弹力装置的弹力系数。2.问从$x$开始,弹几次后所处位置大于$n$。 预处理在每个点需要被弹飞的次
阅读全文
摘要:前言:世间还有这么卡常的题…… 题目链接 题目大意:给定长度为$n$的序列${a_i}$。有$m$次询问,问$[l,r]$内出现正偶数次的数字有多少个。 这题跟蒲公英有些相似,不同的是这题特别卡常…… 设$sum[i][j]$表示前$i$块内$j$出现的次数,$ans[i][j]$表示块$i$到$j
阅读全文
摘要:前言:考的一般般吧……T3暴力没打上来挺可惜的,到手的75分没了。 T1 【JZOJ4745】看电影 Description 听说NOIP2016大家都考得不错,于是CCF奖励省常中了 K 张变形金刚5的电影票奖励OI队的同学去看电影。可是省常中OI队的同学们共有 N(N >= K)人。于是机智的你
阅读全文
摘要:题目链接 题目大意:给定一段长度为$n$的序列和$m$次询问,每次询问区间$[l,r]$内的最小的众数。$n\leq 40000,a_i\leq 10^9$ 因为$a_i\leq 10^9$,显然不能开那么大的数组。所以要离散化。对于离散化后的数组,我们维护两个值$sum[i][j]$和$p[i][
阅读全文
摘要:前言:内容参考自https://www.luogu.com.cn/blog/expect/solution-p2801。感谢。 分块,是一种优雅的暴力,它通过对数列分段,完成对数列一些区间操作和区间查询的操作,是一种根号算法。本文属于分块入门笔记,旨在零基础的同学学会分块。 1 建块 在建块伊始,我
阅读全文
摘要:题目链接 题目大意:给定一颗含有$n$个结点的树,每个结点有一个权值$w$。给定$m$条路径,如果一个点与路径的起点的距离恰好为$w$,那么$ans[i]++$。求所有结点的ans。 题目分析 暴力的做法当然是枚举条路径,然后玄学$dfs$,复杂度应该是$O(nm)$的。再根据约束条件可以拿到65p
阅读全文
摘要:题目链接 题目大意:给定一颗含有$n$个结点的树,每次选择两个结点$x$和$y$,对从$x$到$y$的路径上发放一带$z$类型的物品。问完成所有操作后每个结点发放最多的时哪种物品。 普通的树链剖分貌似也可以做这道题,可以记录一个$c$数组用来记录结点中每种物品的个数,然后暴力乱搞。空间可能会炸。 这
阅读全文
摘要:前置知识:$dfs$序,线段树 我们可以回顾两个问题: 1.树上从$s$到$t$的路径,每个点权值加上$z$。 很简单。遍历整棵树即可。 2.求树上$s$到$t$的权值和。 $LCA$可做。可以利用$LCA$的性质$dis[s]+dis[t]-2*dis[lca]$做即可。时间复杂度$O(n\log
阅读全文
摘要:题目大意:求区间$[L,R]$中所有子区间产生的最大公因数的个数。 对于$gcd$,我们知道$gcd(a,b,c)=gcd(gcd(a,b),c)$。所以我们可以利用$gcd$的传递性来求区间的$gcd$。如果$gcd$相同,那么保留下来位置相对靠右的那一个,这与我们查询的方式有关。我们在查询时是$
阅读全文

浙公网安备 33010602011771号