文章分类 - 思维方式
摘要:题意简述 给定一棵树,每个节点上有一个权值 。若当前节点为 ,则每个点 的贡献是 到 路径上权值比 大的点的数量(包括 ),答案就是所有贡献的和。给出若干个询问 ,回答以 为根节点时的答案。 形式化地,就是求: $$\sum_{
阅读全文
摘要:~~这么臭的题有必要存在吗?~~ 题意转化 题目所说的“先辈”序列,其实就是一个不下降序列。一个不下降序列,就是“先辈”。这个不再证明。 所以要求的就是:维护一个支持区间加的序列,可以判断区间是否为不下降序列。 实现方式 我们考虑简单的写法:用线段树维护。显然区间加可以用延迟标记来维护,这里不再赘述
阅读全文
摘要:例题:Luogu P3373 【模板】线段树 2 step 0 - 引子 在看了众多题解后,我仍然没明白这样一个问题:为什么会想到延迟标记下传要分加法和乘法,而做乘法时还要把加法的 tag 一并乘了?如何想到这种联系? 显然,在尝试一个 lazytag 不行之后,我们肯定能想到同时维护两个延迟标记。
阅读全文
摘要:这道题洛谷评分这么低我是没想到的。感觉这是目前我做得最巧妙的橙题了。 先简述一下题目: 平面内有随机分布的 个格点 ,点不可重合。每次操作可以选一个点朝 上/下/左/右 四个方向移动一格。问把这些点移动成一条连续的、平行于 轴的线段的最小操作数。 我们一步一步来解决这
阅读全文
摘要:概述 单调队列是一种维护队列的队列。它的思想是在决策集合中及时排除一定不是最优解的选择。时间复杂度 。 它是这么实现的: 在队尾加入元素: 若加入该元素不能使队列单调,不断移除队尾元素。否则在队尾加入给定元素。 队首元素出队: 如果队头元素在原队列中应当出队,就不断出队。 这样,单调队列
阅读全文
摘要:对于一个序列,如果其包含的元素仅存在两种状态,那么它可以用二进制状态压缩。具体的操作如下: |操作|运算| | : | : | |取出整数 在二进制表示下的第 位| (n>>k)&1 | |取出整数 在二进制表示下的第 ~ 位(后 位)|n&((1<<
阅读全文
摘要:题目的关键点是:给定 次操作,每次操作是以上四种操作,求每次操作后的当前列表的末尾最后一个数(若数组为空输出 -1)。 如果放在 trie 树里,不就是叶子节点吗? 默认根节点为 1,根节点的父亲节点是它自己。记录每个节点的父亲节点,以及自己存的值。当前列表的最后一位(终点)则用指针 now
阅读全文
摘要:题目 Farmer John's farm consists of a long row of N (1 <= N <= 100,000)fields. Each field contains a certain number of cows, 1 <= ncows <= 2000. FJ want
阅读全文