08 2022 档案
发表于 2022-08-31 19:29阅读:19评论:0推荐:0
摘要:题目链接 如果抛开换根的操作话,就是一个很简单的树链剖分的模板题。但是加了换根之后就边的复杂了起来。首先我们知道,肯定不能每一次换根之后都重新将树剖分一次,所以我们需要去找到换根之后的和我们要去查询的节点之间的关系。 一个很不错的博客 首先来考虑一下如果换根之后,我们要查询的节点刚
阅读全文 »
发表于 2022-08-31 19:12阅读:20评论:0推荐:0
摘要:题目链接 题目大意就是要我们对一个区间执行区间翻转和整体移动区间的操作。 思路:将一个区间分裂出来再移动到另一个节点的后面,可以用来将这一个子树从原树中分裂出来然后再合并到后面去,同时区间反转操作也可以通过打标记的方式来确定这个区间要不要翻转,反转的时候只用将左右子树交换一下位
阅读全文 »
发表于 2022-08-31 19:04阅读:23评论:0推荐:0
摘要:题目链接 需要实现区间覆盖,区间01取反,区间求和以及区间查询最大连续段。区间覆盖很好实现,区间取反只需要用分别统计个数的时候将他俩交换就可以了,区间求和在取反之后只需要就可以求出来了。重点就是区间最大连续子段,分成三类: 左区间全满且跨越到右区间 $2
阅读全文 »
发表于 2022-08-31 18:49阅读:15评论:0推荐:0
摘要:题目链接 主要要实现区间覆盖和区间查询不同数,看见区间赋值操作可能会想到来实现,区间查询不同数直接另外开一个数组记录一下就好了,但很可惜了,代码如下: struct ODT { struct Node { i64 l, r; mutable i64 v; Node (i64 l,
阅读全文 »
发表于 2022-08-30 22:46阅读:74评论:0推荐:0
发表于 2022-08-28 20:50阅读:36评论:0推荐:0
发表于 2022-08-26 18:45阅读:17评论:0推荐:0
摘要:题目链接 因为买一个物品可以有一些替代品来让原先的价格降低,所以可以考虑将每一件物品看成一个点,然后将所有能够替代的物品和此物品连边,物品的价格就作为边权,现在我们就将这个问题转化成了最短路的问题,每一次的答案都是在节点编号为的地方取。解决了上面的问题之后,我们还要注意到另外的限制:等级限制,
阅读全文 »
发表于 2022-08-26 14:37阅读:22评论:0推荐:0
摘要:C 题目大意: 给我们一张网格图,我们求出所有的路径使得这个路径至少包括四个点,且这四个点是严格递增且相邻两个点的差值为,并且这条路径如果能走就必须走到不能走为止。 解题思路: 考虑从起点开始走一直走到最后的话,会有和两种想法,但是如果是用的话,统计终点的方案不是
阅读全文 »
发表于 2022-08-20 10:13阅读:18评论:0推荐:0
摘要:#题目链接 题目意思:给一个以为根,条双向边的树形结构,让我们选出个节点作为出发点前往根节点,算出每一个出发点到根节点的路径上有多少个非出发点的节点数的总和。 思路:如果我们选节点作为非出发点的话,的子树都会加上这个节点的贡献,总共$siz_u-1
阅读全文 »
发表于 2022-08-18 21:21阅读:34评论:0推荐:0
摘要:A 判断这个字符是大写还是小写,大写输出小写输出 char s; std::cin >> s; std::cout << (std::isupper(s) ? "A" : "a"); B 有个物品,选出个物品,使选出的物品价值之和最小。排个序将前个加起来就行了 int
阅读全文 »
发表于 2022-08-15 14:44阅读:26评论:0推荐:0
摘要:A 直接输出即可 int a, b; std::cin >> a >> b; std::cout << a * b << "\n"; B 将所有的个数乘起来看是不是大于,很明显会爆而用高精度的话也太麻烦了,所以可以考虑用$__ int
阅读全文 »
发表于 2022-08-12 21:28阅读:20评论:0推荐:0
发表于 2022-08-12 15:07阅读:47评论:0推荐:0
摘要:题目链接 思路: 实现两个操作,区间加法和查询区间第k大。考虑分块的做法,区间加法对整块来说可以直接另开一个数组来对整块进行区间加法,对于零散块就直接暴力的加上。 区间加法 void update(int l, int r, i64 x) { if (belong[l] == belong
阅读全文 »
发表于 2022-08-12 11:33阅读:43评论:0推荐:0
摘要:众所周知,是一位实力强劲的算法竞赛选手,擅长各种各样的算法,一切问题对于 来说都游刃有余。这一天发现了一个有趣的题目,题目的内容是这样的: 有个算法,每次选择一个区间,学习这个区间里的所有算法,但是每个算法只能学习一
阅读全文 »
发表于 2022-08-05 12:20阅读:32评论:0推荐:0
发表于 2022-08-05 12:08阅读:54评论:0推荐:0
摘要:珂朵莉树() 0x01 珂朵莉树可以解决什么问题 对于涉及区间推平操作的问题,就是把区间内的所有数字变成相同的一个数。如果数据是随机的就可以使用珂朵莉树。 0x02 珂朵莉树的基本原理 比如一开始把一个区间分成这些部分,那么我们就可以用一个结构体将相邻的数字存起来,分别记录
阅读全文 »