2018 Wannafly summer camp Day8--区间权值
区间权值
小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--区间权值相关推荐
- 牛客网【每日一题】7月21日题目精讲—区间权值
来源:牛客网: 区间权值 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 1048576K,其他语言2097152K 64bit IO Format: %lld 题目描述 输入描述: ...
- 问题 G: 区间权值
问题 G: 区间权值 时间限制: 1 Sec 内存限制: 128 MB 提交: 112 解决: 49 [提交] [状态] [讨论版] [命题人:admin] 题目描述 小Bo有n个正整数a1..a ...
- 【线段树】区间修改(区间覆盖、区间权值加)标记下放操作的逻辑顺序
洛谷传送门:月下"毛景树" 由于没有合适的题目,就从这道题入手,解此题时用到的算法/数据结构包括: 树链剖分 线段树(区间覆盖.区间加.区间查询.单点修改) 这道题被我调试了四个小 ...
- [NC19798]区间权值
题解: 把这个双重求和公式按照最简单的方法展开,可以将其n=3,4,5都展开,观察其式子规律 n=5时, (a1 + a2 + a3 + a4 + a5) * w1+ (a1 + **2 *** a2 ...
- 2018 Wannafly summer camp Day3--Knight
Knight 题目描述: 有一张无限大的棋盘,你要将马从\((0,0)\)移到\((n,m)\). 每一步中,如果马在\((x,y)(x,y)\),你可以将它移动到 \((x+1,y+2)(x+1,y ...
- 【bzoj4399】魔法少女LJJ 并查集+权值线段树合并
题目描述 在森林中见过会动的树,在沙漠中见过会动的仙人掌过后,魔法少女LJJ已经觉得自己见过世界上的所有稀奇古怪的事情了 LJJ感叹道"这里真是个迷人的绿色世界,空气清新.淡雅,到处散发着醉 ...
- 2019牛客多校第七场E Find the median 权值线段树+离散化
Find the median 题目链接: https://ac.nowcoder.com/acm/contest/887/E 题目描述 Let median of some array be the ...
- POJ 2018 Best Cow Fences (二分答案构造新权值 or 斜率优化)
$ POJ~2018~Best~Cow~ Fences $(二分答案构造新权值) $ solution: $ 题目大意: 给定正整数数列 $ A $ ,求一个平均数最大的长度不小于 $ L $ 的子段 ...
- 动态区间第k小:树状数组套权值线段树
所谓树状数组套权值线段树,就是在树状树组上套权值线段树 (逃) 解析 如何解决静态区间第k小? 使用主席树就ok啦 辣么如何解决动态区间第k小嘞- 我们想想主席树为啥不能解决动态区间第k小 因为如果改 ...
- 计蒜客 2020 蓝桥杯省赛 B 组模拟赛(五)E区间dp H 裴蜀 J dp A-J 权值线段树
题目链接 因为要去笔试.所以只打了两个小时,有点求快,很多细节没写好就匆匆交,而且没有检查,打的有点菜 C-煎牛排 做法: 所有的面的个数sum=2*n 然后sum/(2*k)即可. ans=ma ...
最新文章
- spring mvc 接入cas登录
- matlab柱状斜线_Matlab:柱状图饼状图填充不同条纹
- CPU100%不限性能和100%独享资源的区别
- python输入一组身高_一起学Python系列之用户输入
- oracle修改10到20,Oracle 10.2.0.5 RMAN迁移并升级11.2.0.4一例
- java语言如何跳转界面_在java中spring mvc页面如何跳转,详细图解
- python编辑器_资深程序员:学Python我推荐你用这几款编辑器
- HR问我为什么要离开上一家公司钱没给到位,心委屈了。这些归根到底就一条:干得不爽。
- PoolTogether 奖池开奖一名用户赢得 43,760 美元,本金仅为 73 美元
- @程序员,如何在五分钟内构建个人网盘服务?| 技术头条
- 怎么查看蓝牙uuid_你的蓝牙耳机真的坏了吗?蓝牙耳机常见的一些假故障?
- 计算机如何建筑材料结合所学知识,《技术与设计2》第三、四单元检测试卷
- JavaScript编辑器推荐
- 用matlab机器人工具箱对SCARA机器人建模
- 数据模型 同比 环比_同比和环比计算公式?
- 拳皇FANS们不得不看的动画
- 网络设备高可用性简例
- 清明五一假期催热周边自驾游 迪庆州应势推出“杜鹃花之旅”
- 仿热血江湖游戏NpcClass_群攻查找范围Npc2
- 齐次矩阵转化为欧拉角坐标系_做控制要知道的刚体旋转知识(三)欧拉角
热门文章
- cpu高 rust腐蚀_木器漆如何选购,Rust-Oleum户外防水防腐木器漆怎么样?
- android小项目数字拼图游戏_Java小项目之:拼图游戏
- cmd 根据计算机名查ip地址_如何查找和更改Mac上的IP地址
- 克隆硬盘后进不去系统_升级系统盘,迁移系统其实很简单
- Linux系统编程 --- 系统调用
- scrcpy能显示不能控制
- 矩阵分析 (三) 矩阵的标准形
- 程序员让开,硅谷将是物理学家的天下,薪水高得离谱
- 为CentOS7/RHEL7安装EPEL 仓库(repo)
- 主板9针DB9串口插针、主板串口挡板延长线针脚定义