区间权值
小Bo有\(n\)个正整数\(a_1\)……\(a_n\),以及一个权值序列\(w_1\)……\(w_n\),现在她定义\(f(l,r)=(\sum_{i=l}^r a_i^2) *w_{r-l+1}\)。
现在他想知道\(\sum_{l=1}^n \sum_{r=l}^n f(l,r)\)的值,需要你来帮帮他,你只需要输出答案对\(10^9+7\)取模后的值。
输入格式
第一行一个正整数\(n\)
第二行\(n\)个整数\(a_1\)……\(a_n\)
第三行\(n\)个整数\(a_1\)……\(a_n\)
输出格式
输出答案\(10^9+7\)取模
样例输入
3
1 1 1
1 1 1
样例输出
10
数据范围
\(1<=n<=3*10^5\)
\(1<=a_i<=10^7\)
\(1<=w_i<=10^7\)

思路:
将\(f(l,r)=(\sum_{i=l}^r a_i^2) *w_{r-l+1}\)展开如下:
\[ \begin{pmatrix} a_1w_1 & ……\\ (a_1+a_2)w_2 & a_2w_1 & …… \\ (a_1+a_2+a_3)w_3 & (a_2+a_3)w_2 & a_3w_1 & ……\\ (a_1+a_2+a_3+a_4)w_4 & (a_2+a_3+a_4)w_3 & (a_3+a_4)w_2 \\ …… & …… & ……\\ (a_1+a_2+……+a_n)w_n & (a_2+……+a_n)w_{n-1} & …… & a_nw_1 \\ \end{pmatrix} \]

从第一列可以想到前缀和,所以先求出前缀和\(f[i](0<=i<=n)\)

\[ \begin{pmatrix} (f_1-f_0)w_1 & ……\\ (f_2-f_0)w_2 & (f_2-f_1)w_1 & …… \\ (f_3-f_0)w_3 & (f_3-f_1)w_2 & (f_3-f_2)w_1 & ……\\ (f_4-f_0)w_4 & (f_4-f_1)w_3 & (f_4-f_2)w_2 \\ …… & …… & ……\\ (f_n-f_0)w_n & (f_n-f_1)w_{n-1} & …… & (f_n-f_{n-1})w_1 \\ \end{pmatrix} \]

然后将\(w_i\)相同的项合(可以相互消去)并描绘得到下面的东西,为了方便,我还是用矩阵表示
\[ \begin{pmatrix} (f_n)w_1 \\ (f_n+f_{n-1}-f_1)w_3\\ (f_n+f_{n-1}+f_{n-2}-f_1-f_2)w_3\\ (f_n+f_{n-1}+f_{n-2}+f_{n-3}-f_1-f_2-f_3)w_4\\ ………… \\ (f_n+f_n-1+……-f_1-f_2-……f_{n-1})w_n \end{pmatrix} \]

现在敲是会TLE的,复杂度太高
所以再考虑一次\(f_i\)的前缀和\(g_i\),
上面就可以将\(f_i\)转换成\(g[n]-g[n-i]-g[i-1]\),
还有一个问题,由于有减法,所以可能答案出现负数,所以最后需要加模再取模。

#include <cstdio>
#include <cstring>
#include <cmath>
#include<algorithm>
#include<iostream>
using namespace std;
typedef long long ll;
const ll mo=1e9+7;
const int maxn=3e5+5;
ll a[maxn],w[maxn],f[maxn],g[maxn],ans=0;
int main()
{int n;scanf("%d",&n);g[0]=f[0]=0;for(int i=1;i<=n;i++){cin>>a[i];f[i]=a[i]+f[i-1];g[i]=(f[i]+g[i-1])%mo;}for(int i=1;i<=n;i++)cin>>w[i];for(int i=1;i<=n;i++){ans=(ans+(g[n]-g[n-i]-g[i-1])*w[i]%mo)%mo;}cout<<(ans+mo)%mo<<endl;return 0;
}

转载于:https://www.cnblogs.com/FlyerBird/p/9457786.html

2018 Wannafly summer camp Day8--区间权值相关推荐

  1. 牛客网【每日一题】7月21日题目精讲—区间权值

    来源:牛客网: 区间权值 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 1048576K,其他语言2097152K 64bit IO Format: %lld 题目描述 输入描述: ...

  2. 问题 G: 区间权值

    问题 G: 区间权值 时间限制: 1 Sec  内存限制: 128 MB 提交: 112  解决: 49 [提交] [状态] [讨论版] [命题人:admin] 题目描述 小Bo有n个正整数a1..a ...

  3. 【线段树】区间修改(区间覆盖、区间权值加)标记下放操作的逻辑顺序

    洛谷传送门:月下"毛景树" 由于没有合适的题目,就从这道题入手,解此题时用到的算法/数据结构包括: 树链剖分 线段树(区间覆盖.区间加.区间查询.单点修改) 这道题被我调试了四个小 ...

  4. [NC19798]区间权值

    题解: 把这个双重求和公式按照最简单的方法展开,可以将其n=3,4,5都展开,观察其式子规律 n=5时, (a1 + a2 + a3 + a4 + a5) * w1+ (a1 + **2 *** a2 ...

  5. 2018 Wannafly summer camp Day3--Knight

    Knight 题目描述: 有一张无限大的棋盘,你要将马从\((0,0)\)移到\((n,m)\). 每一步中,如果马在\((x,y)(x,y)\),你可以将它移动到 \((x+1,y+2)(x+1,y ...

  6. 【bzoj4399】魔法少女LJJ 并查集+权值线段树合并

    题目描述 在森林中见过会动的树,在沙漠中见过会动的仙人掌过后,魔法少女LJJ已经觉得自己见过世界上的所有稀奇古怪的事情了 LJJ感叹道"这里真是个迷人的绿色世界,空气清新.淡雅,到处散发着醉 ...

  7. 2019牛客多校第七场E Find the median 权值线段树+离散化

    Find the median 题目链接: https://ac.nowcoder.com/acm/contest/887/E 题目描述 Let median of some array be the ...

  8. POJ 2018 Best Cow Fences (二分答案构造新权值 or 斜率优化)

    $ POJ~2018~Best~Cow~ Fences $(二分答案构造新权值) $ solution: $ 题目大意: 给定正整数数列 $ A $ ,求一个平均数最大的长度不小于 $ L $ 的子段 ...

  9. 动态区间第k小:树状数组套权值线段树

    所谓树状数组套权值线段树,就是在树状树组上套权值线段树 (逃) 解析 如何解决静态区间第k小? 使用主席树就ok啦 辣么如何解决动态区间第k小嘞- 我们想想主席树为啥不能解决动态区间第k小 因为如果改 ...

  10. 计蒜客 2020 蓝桥杯省赛 B 组模拟赛(五)E区间dp H 裴蜀 J dp A-J 权值线段树

    题目链接 因为要去笔试.所以只打了两个小时,有点求快,很多细节没写好就匆匆交,而且没有检查,打的有点菜 C-煎牛排 做法: 所有的面的个数sum=2*n   然后sum/(2*k)即可. ans=ma ...

最新文章

  1. spring mvc 接入cas登录
  2. matlab柱状斜线_Matlab:柱状图饼状图填充不同条纹
  3. CPU100%不限性能和100%独享资源的区别
  4. python输入一组身高_一起学Python系列之用户输入
  5. oracle修改10到20,Oracle 10.2.0.5 RMAN迁移并升级11.2.0.4一例
  6. java语言如何跳转界面_在java中spring mvc页面如何跳转,详细图解
  7. python编辑器_资深程序员:学Python我推荐你用这几款编辑器
  8. HR问我为什么要离开上一家公司钱没给到位,心委屈了。这些归根到底就一条:干得不爽。
  9. PoolTogether 奖池开奖一名用户赢得 43,760 美元,本金仅为 73 美元
  10. @程序员,如何在五分钟内构建个人网盘服务?| 技术头条
  11. 怎么查看蓝牙uuid_你的蓝牙耳机真的坏了吗?蓝牙耳机常见的一些假故障?
  12. 计算机如何建筑材料结合所学知识,《技术与设计2》第三、四单元检测试卷
  13. JavaScript编辑器推荐
  14. 用matlab机器人工具箱对SCARA机器人建模
  15. 数据模型 同比 环比_同比和环比计算公式?
  16. 拳皇FANS们不得不看的动画
  17. 网络设备高可用性简例
  18. 清明五一假期催热周边自驾游 迪庆州应势推出“杜鹃花之旅”
  19. 仿热血江湖游戏NpcClass_群攻查找范围Npc2
  20. 齐次矩阵转化为欧拉角坐标系_做控制要知道的刚体旋转知识(三)欧拉角

热门文章

  1. cpu高 rust腐蚀_木器漆如何选购,Rust-Oleum户外防水防腐木器漆怎么样?
  2. android小项目数字拼图游戏_Java小项目之:拼图游戏
  3. cmd 根据计算机名查ip地址_如何查找和更改Mac上的IP地址
  4. 克隆硬盘后进不去系统_升级系统盘,迁移系统其实很简单
  5. Linux系统编程 --- 系统调用
  6. scrcpy能显示不能控制
  7. 矩阵分析 (三) 矩阵的标准形
  8. 程序员让开,硅谷将是物理学家的天下,薪水高得离谱
  9. 为CentOS7/RHEL7安装EPEL 仓库(repo)
  10. 主板9针DB9串口插针、主板串口挡板延长线针脚定义