随笔分类 - 数据结构
摘要:$n \leq 10000$的数列,$m \leq 10000$个操作,一:单点修改;二:查区间不同数字个数。修改数$\leq 1000$,数字$\leq 1000000$。 我不会告诉您这是三种写法的双倍经验题!! 一般可以把查区间不同个数改成:$pre_i$表示$i$之前的一个与她相同的数在哪,
        阅读全文
                
摘要:$n \leq 50000$的$\leq 50000$的数字序列,$m \leq 50000$个询问,每次问一个区间中随机拿两次(不放回)拿到相同数字的概率,以既约分数形式输出。 莫队入门。把询问按“同块排$r$、不同块排$l$”的顺序,依靠左右端点两个指针跑来跑去依次回答。 1 //#includ
        阅读全文
                
摘要:$n \leq 5e5$的正负数数列,求长度在$[L,R]$的区间和前$K \leq 5e5$大的区间和的和。 先把区间和变为两个前缀和相减。定一移二,确定区间右端点,然后左端点就是一个范围。用个堆把每个右端点能取得的区间和最大的那个丢进去,咋知道哪个最大?右端点前缀和一定,找左端点在一定范围内的最
        阅读全文
                
摘要:$n \leq 100000$个正整数,$m \leq 100000$个询问,每次问区间$[L,R]$不在这几个数组成的可重集合的子集数字和的集合的最小正整数,说人话就是这几个数瞎选加起来不能凑成的最小正整数。 以为是数学题。。没想到是一主席树。。 可以考察集合里加入一个数之后对集合不能凑成的数的影
        阅读全文
                
摘要:$n \leq 500000$的树给$m \leq 500000$个路径,$q \leq 500000$个询问每次问一个区间的路径交。 路径交口诀:(前方高能) 判有交,此链有彼祖; 取其交,最深两两祖。 说成人话就是:判两条路径有没有交,只要一条链的lca在另一条链上就一定有交;取两条路径的交,把
        阅读全文
                
摘要:$n \leq 2e5,m \leq 2e5$的有边权图,对每条边问:不改其他边的情况下这条边最多能是多少使得他一定在所有最小生成树上,如果无穷大输出-1. 典型题+耗时题,CF上的绝望时刻。。打VP时前三题花时间太多,导致这题看完题只剩20min,代码还得再敲稳点。 好进入正题,瞎造一棵最小生成树
        阅读全文
                
摘要:$n \leq 2e5,m \leq 2e5,q \leq 2e5$,$n,m$的图给固定的$s,t$,以及$q$个询问,每次问删掉某条边之后问$s$到$t$的最短路。 首先喷一波,出题人语文太差了,这么美的题目居然潦草两句带过背景,描述题目也毫无趣味,差评!(本题分类:语文) 方法一:把图载到一个
        阅读全文
                
摘要:$n \leq 50000$天的天气预报已知,其他未知,$m \leq 10000$个询问每次问:第$x$天和第$y$天是否满足,第$y$天降雨量$\leq$第$x$天,且不存在$x<z<y$使得第$z$天降雨量$\geq$第$y$天降雨量,输出一定,不可能或有可能。其他数字$\leq 1e9$。天
        阅读全文
                
摘要:n<=400000个在线操作:树上插入一个某点权、父亲为某点的点;查询这样的最长点序列:序列的某个数必须是上一个数的祖先之一;序列的点权和不能超过x;序列的某个点的点权必须不小于上一个,且相邻两个点之间不存在点权大于等于深度大的那个点的点权的点。 说白了,就是每个点找他祖先中第一个点权大于等于他的点
        阅读全文
                
摘要:n<=100000的数列支持以下操作:一、区间加;二、区间赋值;三、查区间最大;四、查区间历史版本最大。 恶心死我了。。可能很水,但我调了半天。 错误!调了两天。 这里有一个棘手问题:历史版本。 首先不看赋值操作。记俩标记——区间加add和区间历史加标记pre。其中后者的含义是“从上一次这个区间标记
        阅读全文
                
摘要:如题。 方法一:LCT!细节挺多,略。 方法二:如题(废话。。) 如果照传统的方法,比如1,2,3在一起要把1删掉,要保证1的爸爸和2,3以后不一样,如果1不是根节点就直接$fa[1]=1$,否则需要改所有的儿子。 上面的问题在于删掉根节点的操作过于冗杂,也就是说想一个办法使得1-n中没有一个点作为
        阅读全文
                
摘要:n<=30000个同余方程:$x_i\equiv k_i*x_{p_i}+b_i (mod 10007)$。m<=100000个操作:一、修改某个不等式的$k_i,p_i,b_i$,二、查询某个变量的值。无解-1,无穷解-2. 极其好玩的一道题。不像某些“绝世好题”实际是水题。。 首先按依赖关系可以
        阅读全文
                
摘要:$n<=1000,m<=1000$,$n*m$的01矩阵,给$t<=1000000$个询问,每次问一个矩形中最大的1正方形的边长。 先想想不考虑“一个矩形中”的限制,那记$f(i,j)$--以$(i,j)$为右下角的最大的正方形,那 很好,那现在加入一个边界限制,由于边长r的正方形同时也是边长r-1
        阅读全文
                
摘要:给个无向图,有两个操作:删边,查两点间路径上边权最大值的最小值。 不是单源最短路了,迪杰挂了,所以还是来LCT吧。如果是加一条边的话,设边端点x,y,x,y连通就替换掉x到y路径上边权最大的一条边,否则直接连。 删边不会,于是离线倒过来做。 代码?还没写。
        阅读全文
                
摘要:给个点权树以下操作:两点连边,若已联通则无视;两点删边,若边不存在则无视;一条链加上某个数;以及!!! 查询一条链上任选一条子链的期望权值,一条链的权值为链上所有点的权值的和。 好吧前面三个都是LCT普通操作,第四个呢。。。其实只要会分治地求答案,即合并一个区间的左子区间和右子区间的答案即可。 YY
        阅读全文
                
摘要:给一棵森林,以下操作:询问两点是否联通,否则连边;单点修改;链查询。 LCT。。 代码?还没写。
        阅读全文
                
摘要:n<=50000,m<=100000的图上,路径有属性Ai和Bi,问从1到n的路径中(Ai的最大值+Bi的最大值)的最小值。 双属性图论题,常用套路--定一动二。比如说这里可以先按A从小到大排序,然后依次加入图中来考虑怎么计算B。 方法一:哦,最大值最小,那不是最小生成树吗?会加边的图,那不是LCT
        阅读全文
                
摘要:给棵树,支持:连边删边,链加,链乘,链求和。 LCT?? 1 #include<string.h> 2 #include<stdlib.h> 3 #include<stdio.h> 4 #include<math.h> 5 //#include<assert.h> 6 #include<algori
        阅读全文
                
摘要:n<=10000个点,m<=200000个操作,连接,断边,问两个点是否连通,保证连接过程中每个联通块都是树。 LCT。。 1 #include<string.h> 2 #include<stdlib.h> 3 #include<stdio.h> 4 #include<math.h> 5 //#in
        阅读全文
                

 浙公网安备 33010602011771号
浙公网安备 33010602011771号