随笔分类 -  数据结构

摘要:题意: Alice 和 Bob 在玩一个游戏。 游戏在一棵有 $n$ 个点的树上进行。最初,每个点上都只有一个数字,那个数字是 $123456789123456789$。 有时,Alice 会选择一条从 $s$ 到 $t$ 的路径,在这条路径上的每一个点上都添加一个数字。对于路径上的一个点 $r$, 阅读全文
posted @ 2021-02-17 21:04 1124828077ccj 阅读(110) 评论(0) 推荐(0)
摘要:题意: https://loj.ac/p/2050 题解: 此题思路非常清晰,最后的大树可以看做是由 $m+1$ 个节点,每个节点内部又是一棵树组成的。 考虑外层的树怎么建,对于一个插入操作,可以先二分它的父亲是哪一个节点,顺便还可以求一下模板树的某个子树的第 $k$ 大来确定到底是连在谁身上,用d 阅读全文
posted @ 2021-02-15 17:34 1124828077ccj 阅读(128) 评论(0) 推荐(0)
摘要:题意: 给定一张 $ N $ 个顶点 $ M $ 条边的无向图(顶点编号为 $ 1,2, \cdots ,n $),每条边上带有权值。所有权值都可以分解成 $ 2^a \cdot 3^b $ 的形式。 现在有 $ q $ 个询问,每次询问给定四个参数 $ u $、$ v $、$ a $ 和 $ b 阅读全文
posted @ 2021-02-15 17:16 1124828077ccj 阅读(45) 评论(0) 推荐(0)
摘要:题意: 给定一棵树,每次有 $3$ 种操作 添加一条从 $u$ 到 $v$ 的重要度为 $d$ 的路径 删除一条以前添加的路径 询问当前时刻不经过点 $x$ 的路径中,重要度最大的路径的重要度 题解: 考虑对于一个添加或删除操作,可以树链剖分之后在经过的路径上打上重要度的标记,然后查询的时候就可以知 阅读全文
posted @ 2021-02-11 17:27 1124828077ccj 阅读(62) 评论(0) 推荐(0)
摘要:题意: 胖头鱼是一条喜欢摸鱼的鱼。 他经常去河边摸鱼,每一天,他会选择一段连续的时间去摸鱼,河里有很多不同种类鱼,每一个时间点会有恰好一条鱼出现,而胖头鱼一定能摸到这条鱼(如果他在摸鱼的话)。 摸完鱼后,他会把摸到的鱼按摸到的时间顺序排成一排,统计今天摸鱼的收益,由于他是个鱼盲,他只能分辨出哪些鱼是 阅读全文
posted @ 2020-02-18 23:43 1124828077ccj 阅读(236) 评论(3) 推荐(0)
摘要:题意: 求已知序列的所有本质不同的子区间的最大值之和。 题解: 对于每一个位置i,我们需要计算出最短的区间[i,j],使得[i,j]的字符串没有被算过,那么[i,j+1],[i,j+2],[i,j+3]...[i,n]都不会被算过。 统计答案很容易,方法应该也不少。我的做法是定义每一个点的父亲为后面 阅读全文
posted @ 2020-02-16 18:23 1124828077ccj 阅读(97) 评论(0) 推荐(0)
摘要:题意: https://www.lydsy.com/JudgeOnline/problem.php?id=2002 题解: 这题可以使用LCT来做,但是我不会,所以我写了分块。 如果不考虑修改,那么这题很简单,f[i]表示从第i个点弹飞所需要的次数。 如果i+ki>n那么f[i]=1否则f[i]=f 阅读全文
posted @ 2020-02-08 11:44 1124828077ccj 阅读(105) 评论(0) 推荐(0)
摘要:题意: 题解: 询问l~r的答案,很显然我们直接转化成0~r的答案减去0~(l-1)的答案。 如何求0~a的答案,从高位往低位枚举。 (1)如果当前位置在a中是1,那么这个位置可以取0,也可以取1。如果取0,那后面的随便取都无所谓,也就是说,后面的位置的0,1是可以随便乱放的,也就是说当前这一位为0 阅读全文
posted @ 2020-02-07 00:37 1124828077ccj 阅读(112) 评论(0) 推荐(0)
摘要:题意: 题解: 这题其实就是一道线段树的基础应用题,只不过代码稍稍有点长。 本题只需要维护0/1的个数,左边和右边最长连续0/1的个数,总的最大的0/1的个数。取反操作就是把上述维护的值0/1互换,其余的直接修改。 注意细节,难度并不大。 #include<cstdio> #include<algo 阅读全文
posted @ 2020-02-05 23:00 1124828077ccj 阅读(346) 评论(0) 推荐(0)
摘要:题意: 已知大小为n的一个排列,对于任意一个子序列s,它对ans[k]的贡献为(对于任意的i<|s|,满足s[i]>k>s[i+1]或者s[i]<k<s[i+1]的i的数量)。输出ans[k],k∈[1,n] 题解: 由于个人比较菜,所以我的方法很奇怪。 从小到大枚举i,考虑每一次“点亮”它所在的位 阅读全文
posted @ 2020-02-04 22:55 1124828077ccj 阅读(128) 评论(0) 推荐(0)
摘要:题意: 有一个长度为n的互不相同的序列,求对于任意i,j,1<=i<=j<=n,求g(i,j)。 g(i,j)的定义是将i~j的元素都删除之后剩余的数字两两之间gcd的最大值。 题解: 首先枚举gcd,考虑什么时候会作为答案。 找到它的倍数所在的位置,假设从小到大所在的位置为a[0],a[1]... 阅读全文
posted @ 2020-02-03 22:08 1124828077ccj 阅读(175) 评论(0) 推荐(0)
摘要:题意: camp国有n座城市,由1,2,...,n编号。城市由n–1条双向道路相连。任意两个城市之间存在唯一的道路连通。有m个旅行商,第i个旅行商会从城市ai旅行到城市bi,贩卖ci件商品。已知第i个城市的居民最多购买wi件商品,bobo想知道旅行商们能够卖出商品数量的最大值。 n,m<=20000 阅读全文
posted @ 2020-02-02 21:05 1124828077ccj 阅读(144) 评论(0) 推荐(0)
摘要:题意: http://uoj.ac/problem/481 题解: 其实这个做法似乎并不是真的,在uoj上被卡了97分。但是没有关系,至少它是能在官方数据下AC的。 这题做法十分清晰,直接建图跑最短路显然会T飞,那么我们可以考虑用数据结构优化建图,也就是点向数据结构连边,然后数据结构再向点连边,利用 阅读全文
posted @ 2020-02-02 20:59 1124828077ccj 阅读(155) 评论(0) 推荐(0)
摘要:题意: 有一个长度为n的序列a,a[i]在[li,ri]中独立均匀随机生成。求期望的逆序对个数。 题解: 显然由于独立生成,所以可以每对逆序对单独考虑。 我们将每一块[i,i+1](i∈Z)的区间称之为“第i块”。那么假设a[i]有pi的概率选到第x块,a[j]有pj的概率选到第y块(i<j,x>y 阅读全文
posted @ 2020-02-01 23:59 1124828077ccj 阅读(111) 评论(0) 推荐(0)
摘要:题意: 五福街是一条笔直的道路,这条道路可以看成一个数轴,街上每个建筑物的坐标都可以用一个整数来表示。小明是一位时光旅行者,他知道在这条街上,在过去现在和未来共有 n个商店出现。第 i个商店可以使用四个整数 xi​,ti​,ai​,bi​描述,它们分别表示:商店的坐标、商店的类型、商店开业的年份、商 阅读全文
posted @ 2020-02-01 23:30 1124828077ccj 阅读(116) 评论(0) 推荐(0)
摘要:题意: 给定n个数字a[i],m个询问,每次询问给定l,r,x,求(a[l]+x)xor(a[l+1]+x)xor...xor(a[r]+x)。 题解: 分开来按位考虑。对于第i位,显然,大于第i位的数值都是没有意义的,可以全部丢掉看做0,无论是a还是x都可以这样处理。 如果不+x,那么经过处理之后 阅读全文
posted @ 2020-01-31 23:44 1124828077ccj 阅读(135) 评论(0) 推荐(0)
摘要:题意: 现在有 n 块水晶石板形成一个序列,每块水晶石板有一个权值 。 第 i 块水晶石板的大小是 ai​∗bi​的,也就是有 ai​∗bi​ 个格子。 A和B要拿这些石板玩游戏。 每次玩游戏,A都会先选择一个区间 $[l,r]$,B只能选择这个区间的一个子区间。 对于这个子区间中的每个石板,A可以 阅读全文
posted @ 2020-01-31 23:32 1124828077ccj 阅读(137) 评论(0) 推荐(0)
摘要:题意: 玩具上有一个数列,数列中某些项的值可能会变化,但同一个时刻最多只有一个值发生变化。现在佳媛姐姐已经研究出了所有变化的可能性,她想请教你,能否选出一个子序列,使得在任意一种变化中,这个子序列都是不降的?请你告诉她这个子序列的最长长度即可。每种变化最多只有一个值发生变化。 题解: 设Max[i] 阅读全文
posted @ 2020-01-30 23:23 1124828077ccj 阅读(151) 评论(0) 推荐(0)
摘要:题意: 有一个长度很大(10^18)的序列是由长度为n的序列不断循环构成的。长度为n的序列给定且数值均为0~9。每次有两个操作。 1 修改循环节上的一位。 2 询问 $[l,r]$ 内所有连续子串的交错和的和,$1<=l,r<=10^{18}$。 一个子串$[l,r]$的交错和$=a[l]-a[l+ 阅读全文
posted @ 2020-01-29 23:59 1124828077ccj 阅读(191) 评论(0) 推荐(0)
摘要:题意: 对于任意一个数列,如果能在有限次进行下列删数操作后将其删为空数列,则称这个数列可以删空。一次删数操作定义如下: 记当前数列长度为 k,则删掉数列中所有等于 k 的数。 现有一个长度为 n 的数列 a,有 m 次修改操作,第 i 次修改后你要回答:经过 i 次修改后的数列 a,至少还需要修改几 阅读全文
posted @ 2020-01-29 23:52 1124828077ccj 阅读(160) 评论(0) 推荐(0)