考虑第i种货物对结果的贡献,选择第i种货物对结果的贡献 ai×(ai+1×1+ai+2×2+⋯+ak×(k−i))
如果是选择第i+1种货物,对结果的贡献为 ai+1×(ai+2×1+ai+3×2+⋯+ak×(k−i−1))
右边的差值其实就是 ai+1+ai+2+⋯+ak
因此可以预处理一个后缀和数组来去一遍遍历,一遍计算,当然,也可以不使用后缀和数组,维护两个变量即可
仓库里有 n 种不同类型的货物,类型编号分别为 1,2,…,n。第 i 种货物共有 ai 件。管理员将所有货物按照类型编号从小到大的顺序依次摆放在一条货架上:先放置所有编号为 1 的货物,再放置所有编号为 2 的货物,依此类推。最终得到一个长度为 S=∑i=1nai 的货物序列。
对于货架上的任意一个连续区间,定义该区间的振幅为区间内货物类型编号的最大值减去最小值。
请你计算这条货架上所有可能的连续区间的振幅之和。由于结果可能非常大,请将答案对 109+7 取模后输出。
约束条件:
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册