原题目传送门:
以上题目均来自温州中学在线评测系统(wzoi.cc)。
大致了解什么是前缀和与差分
个人理解就是:存在一个数组,其中某一位的值与前一个值挂钩、相关联。
前缀和,就是前若干位的元素和;差分,就是第某位与前一位的差。
不妨设原数组为arr[],则需要另外创建数组k[],则:
k[i]=k[i-1]+arr[i]即前缀和的计算;相反地,arr[i]=k[i]-k[i-1]即差分的计算。
当k[]中的某一个数值变动之后,那么进行差分后在这个位置之后的结果也都会发生改变。
因此,可以想到当进行区间整体修改数值时,需要在区间后(修改的势力范围之外)“消除影响”,即进行与之前修改相反的运算使之回归原本的样子。
希望没有讲乱
着手尝试解题
【例1】oliver的表白时间
题目描述:
oliver打算今天向小X告白,可是在仅有的F时间内,周围的环境总是影响着紧张的oliver.如有些人会故意阻挠,这会让表白很难堪,但有些人却能促进表白的气氛。所有人不是总在小X身边的,他们各自会有一段时间在,oliver知道了每个人对表白的程度的影响值M(正数表示会促进气氛,负数表示使气氛难堪,数字大小决定影响程度),和哪几个时间段在小X身边。现在oliver想