
前缀和&差分
NULL
ln2037
用心雕琢我的艺术品。
展开
-
LeetCode 437. 路径总和 III【前缀和 + DFS】
给定一个二叉树,它的每个结点都存放着一个整数值。找出路径和等于给定数值的路径总数。路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。示例:root = [10,5,-3,3,2,null,11,3,-2,null,1], sum = 8 10 / \5 -3/ \ 3 2 11/ \ 3 -2 1返回 3。和等原创 2021-01-31 22:01:31 · 167 阅读 · 0 评论 -
LeetCode560. 和为K的子数组 【前缀和】
给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。示例 1 :输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。说明 :数组的长度为 [1, 20,000]。数组中元素的范围是 [-1000, 1000] ,且整数 k 的范围是 [-1e7, 1e7]。这题本来用尺取法写的,写完交了一发才发现有负数。。然后改成了前缀和。对于前缀和数组sum,存在i < j,则sum[ j ] - sum[i原创 2020-12-15 18:46:23 · 99 阅读 · 0 评论 -
LeetCode862. 和至少为 K 的最短子数组【单调队列 + 前缀和】
返回 A 的最短的非空连续子数组的长度,该子数组的和至少为 K 。如果没有和至少为 K 的非空子数组,返回 -1 。示例 1:输入:A = [1], K = 1输出:1示例 2:输入:A = [1,2], K = 4输出:-1示例 3:输入:A = [2,-1,2], K = 3输出:3提示:1 <= A.length <= 50000-10 ^ 5 <= A[i] <= 10 ^ 51 <= K <= 10 ^ 9维护一个前缀和数组sum原创 2020-12-13 18:17:31 · 157 阅读 · 0 评论 -
P3368 模板【树状数组】2
题目描述如题,已知一个数列,你需要进行下面两种操作:将某区间每一个数数加上 xxx;求出某一个数的值。输入格式第一行包含两个整数 NNN、MMM,分别表示该数列数字的个数和操作的总个数。第二行包含 NNN 个用空格分隔的整数,其中第 iii 个数字表示数列第 ii i 项的初始值。接下来 MMM 行每行包含 222 或 444个整数,表示一个操作,具体如下:操作 111: 格式:1 x y k 含义:将区间 [x,y][x,y][x,y] 内每个数加上 kkk;操作 222: 格式:2原创 2020-09-14 22:56:09 · 162 阅读 · 0 评论 -
P2882 [USACO07MAR]Face The Right Way G 【贪心 + 差分】
题目描述Farmer John has arranged his N (1 ≤ N ≤ 5,000) cows in a row and many of them are facing forward, like good cows. Some of them are facing backward, though, and he needs them all to face forward to make his life perfect.Fortunately, FJ recently bought原创 2020-09-12 12:18:17 · 171 阅读 · 0 评论 -
P1419 寻找段落 【二分 + 单调队列 + 前缀和】
题目描述给定一个长度为n的序列a_i,定义a[i]为第i个元素的价值。现在需要找出序列中最有价值的“段落”。段落的定义是长度在[S,T]之间的连续序列。最有价值段落是指平均值最大的段落,段落的平均值=段落总价值/段落长度。输入格式第一行一个整数n,表示序列长度。第二行两个整数S和T,表示段落长度的范围,在[S,T]之间。第三行到第n+2行,每行一个整数表示每个元素的价值指数。输出格式一个实数,保留3位小数,表示最优段落的平均值。输入输出样例输入 #132 23-12输出 #1原创 2020-09-11 20:57:55 · 264 阅读 · 0 评论 -
P4086 [USACO17DEC]My Cow Ate My Homework S 【前缀和】
题目描述In your bovine history class, you have been given a rather long homework assignment with NNN questions (3≤N≤100,0003 \leq N \leq 100,0003≤N≤100,000), each graded with an integer score in the range 0…10,000. As is often customary, your teacher plans to原创 2020-09-10 17:58:42 · 374 阅读 · 0 评论 -
P2671 求和【前缀和】
题目描述一条狭长的纸带被均匀划分出了nnn个格子,格子编号从111到nnn。每个格子上都染了一种颜色color_icolor_icolor_i用[1,m][1,m][1,m]当中的一个整数表示),并且写了一个数字number_inumber_inumber_i。定义一种特殊的三元组:(x,y,z)(x,y,z)(x,y,z),其中x,y,zx,y,zx,y,z都代表纸带上格子的编号,这里的三元组要求满足以下两个条件:xyzxyzxyz是整数,x<y<z,y−x=z−yx<y<z原创 2020-09-08 18:55:01 · 224 阅读 · 0 评论 -
P2004 领地选择 【前缀和】
题目描述作为在虚拟世界里统帅千军万马的领袖,小 Z 认为天时、地利、人和三者是缺一不可的,所以,谨慎地选择首都的位置对于小 Z 来说是非常重要的。首都被认为是一个占地 C×CC\times CC×C 的正方形。小 Z 希望你寻找到一个合适的位置,使得首都所占领的位置的土地价值和最高。输入格式第一行三个整数 N,M,CN,M,CN,M,C,表示地图的宽和长以及首都的边长。接下来 NNN 行每行 MMM 个整数,表示了地图上每个地块的价值。价值可能为负数。输出格式一行两个整数 X,YX,YX,Y,原创 2020-09-08 14:47:15 · 338 阅读 · 0 评论 -
P1719 最大加权矩形【前缀和】
题目描述为了更好的备战NOIP2013,电脑组的几个女孩子LYQ,ZSC,ZHQ认为,我们不光需要机房,我们还需要运动,于是就决定找校长申请一块电脑组的课余运动场地,听说她们都是电脑组的高手,校长没有马上答应他们,而是先给她们出了一道数学题,并且告诉她们:你们能获得的运动场地的面积就是你们能找到的这个最大的数字。校长先给他们一个N*N矩阵。要求矩阵中最大加权矩形,即矩阵的每一个元素都有一权值,权值定义在整数集上。从中找一矩形,矩形大小无限制,是其中包含的所有元素的和最大 。矩阵的每个元素属于[-127,原创 2020-09-08 14:23:24 · 247 阅读 · 0 评论 -
P3406 海底高铁 【差分】
题目背景大东亚海底隧道连接着厦门、新北、博艾、那霸、鹿儿岛等城市,横穿东海,耗资1000亿博艾元,历时15年,于公元2058年建成。凭借该隧道,从厦门可以乘坐火车直达台湾、博艾和日本,全程只需要4个小时。题目描述该铁路经过N个城市,每个城市都有一个站。不过,由于各个城市之间不能协调好,于是乘车每经过两个相邻的城市之间(方向不限),必须单独购买这一小段的车票。第i段铁路连接了城市i和城市i+1(1<=i<N)。如果搭乘的比较远,需要购买多张车票。第i段铁路购买纸质单程票需要Ai博艾元。虽然原创 2020-09-08 12:06:56 · 222 阅读 · 0 评论 -
P3397 地毯 【差分】
题目背景此题约为NOIP提高组Day2T1难度。题目描述在 n×nn\times nn×n 的格子上有 mmm 个地毯。给出这些地毯的信息,问每个点被多少个地毯覆盖。输入格式第一行,两个正整数 n,mn,mn,m。意义如题所述。接下来 mmm 行,每行两个坐标 (x1,y1)(x_1,y_1)(x1,y1) 和 (x2,y2)(x_2,y_2)(x2,y2),代表一块地毯,左上角是 (x1,y1)(x_1,y_1)(x1,y1),右下角是 (x2,y2)(x_2,y_2)(x2,原创 2020-09-08 10:55:47 · 360 阅读 · 0 评论 -
IncDec Sequence(差分)
给定一个长度为 n(n≤105)(n \leq 10^5 )(n≤105) 的数列a1,a2,…,an{a_1,a_2,…,a_n}a1,a2,…,an,每次可以选择一个区间 [l,r],使下标在这个区间内的数都加一或者都减一。求至少需要多少次操作才能使数列中的所有数都一样,并求出在保证最少次数的前提下,最终得到的数列可能有多少种。输入描述:第一行一个正整数n。接下来n行,每行一个整...原创 2019-10-30 13:42:40 · 323 阅读 · 0 评论 -
差分
差分就是将一个数列的每一项与前一项做差。其中第一项是原序列本身, n + 1项是原序列最后一项的相反数。差分数组的性质:1.对差分数组的前缀和就是原序列。2.对原序列进行更新,比如将区间[L,R]的每一项都加上val,等价于将差分数组的第L项加val,第R + 1项减val。...原创 2019-10-30 13:31:49 · 390 阅读 · 0 评论