给出一个长度为 $n$ 的环和一个常数 $k$ ,每次会从第 $i$ 个点跳到第 $(i+k)\bmod n+1$ 个点,总共跳了 $m$ 次。每个点都有一个权值,记为 $a_i$ ,求 $m$ 次跳跃的起点的权值之和对 $10^9+7$ 取模的结果。 给出一个长度为 $n$ 的环和一个常数 $k$,每次会从第 $i$ 个点跳...
路径的长度是指经过边的数量。 思路1: 要求编号也单调递增的话不妨按照输入顺序加边,之后只考虑让权值严格递增即可。 设 表示以 为结尾并且最后一条边权为 的最长路径长度。那么该状态可以从所有以 为端点并且权值 的边转移而来。即 是一条边, 。 现在要做的就是如何快速求出以 为起点的权值在 之间的长度最...
在已经掌握线段树的基本用法后的做题整理。给自己复习用的。 用mid表示(l+r)/2,u表示当前区间节点(父区间),ls,rs分别表示当前区间的左、右子区间节点。 1 普通线段树 普通维护序列 P2023 [AHOI2009] 维护序列 修改:区间加,区间乘;询问:区间求和。 双倍经验:P3373 【模板】线段树 2。 维护两个标记,加add和...
拓展:原数组是差分数组时,可进行区间更新,单点查询,当然想区间查询也有办法(维护两个树状数组即可)。 区别 树状数组用来维护一个具有区间可减(加)性质的工具,所以可以用来维护区间前缀和。 区间最值不具有区间可减性,所以不能使用树状数组进行维护,而使用st表。 st表的思想 初始化 预处理数组, f[x][i] 表示...
[P01]简单贪心 15:06 [P02]方圆游戏 21:51 [P03]汽车加油 11:22 [P04]luoguP1223-排列接水 23:06 [P05]luogu-P1190-接水问题 13:32 [P06]luogu-P1106-删数字 36:12 [P07]luogu-P1323-删数问题II 32:50 [P08]luogu-P1031-均分纸牌 14:39 [P09]loj-10000-[区间选择问题]-活动安排 14:21 [...
HA实验基地有n台发电机,标号为1-n,每台发电机的发电效率为1。 为了满足基地的用电需求,HtBest会在某台发电机上镶嵌一个等级为i的神力水晶,该发电机的发电效率是镶嵌神力水晶之前的i倍,一个发电机可以同时镶嵌多个神力水晶。 但是神力水晶有时还有别的用处,HtBest会拆掉某台发电机之前镶嵌上的一个神力水晶(设...
树状数组,也被称为“二叉索引树”或“Binary Indexed Tree”,是一种高效的数据结构,用于处理单点更新和范围查询问题。它可以在 O(log n) 的时间复杂度内完成单点更新和范围查询操作。 维护区间最值的树状数组模板是一种对树状数组进行改进的方法,它可以让树状数组在O(log n) 的时间复杂度内完成单点更新和区间...
by wyl8899 树状数组的基本知识已经被讲到烂了,我就不多说了,下面直接给出基本操作的代码。 假定原数组为 a[1..n],树状数组 b[1..n],考虑灵活性的需要,代码使用 int *a 传数组。 #define lowbit(x) ((x)&(-(x))) int sum(int *a,int x){ int s=0; for(;x;x-=lowbit(x))s+=a[x]...
树状数组,也称“二叉数组”,是一种基于二叉树的数据结构。它可以高效地实现一些传统的数组操作,如前缀和、区间和等。树状数组的基本操作包括如下几种: 1.构建树状数组:根据给定的数组构建对应的树状数组。 2.单点更新:更新树状数组中某个元素的值。 3.前缀和查询:查询树状数组中某个区间的和。 4.区间更新:更新...
Tip:vscode用的是tab,leetcode网页用的是4个空格,缩进可能有小问题,统一改为 Tab和4size 即可 若有链接失效或有讨论或有添加,可在Issuses上告知 https://leetcode-cn.com/u/lzh_yves (零) 独特算法 28.实现strStr()(KMP) 30.串联所有单词的子串 32.最长有效括号 45.跳跃游戏II 49.字母异位词分...