题意简明,不说了(

因为教练让同学们做线段树的题,早就会了线段树的我就来爆踩水水蓝了/kk

首先推一下柿子:

\[\frac 1 n\sum_{i=1}^n(a_i^2-2 \times a_i \times \overline a + \overline a^2)
\]
\[\frac 1 n(\sum_{i=1}^na_i^2-2\overline a \times \sum_{i=1}^na_i + n \times \overline a^2)
\]

于是用线段树维护一下区间和&区间平方和就好了。。。

愿意的话甚至可以用树状数组维护。。。

code:

#include<cstdio>
const int M=1e5+5,mod=1e9+7;
int n,m,a[M];
inline int Inv(int a){
int b=mod-2,ans=1;
for(;b;b>>=1,a=1ll*a*a%mod)if(b&1)ans=1ll*ans*a%mod;
return ans;
}
inline int Add(const int&a,const int&b){
return a+b>=mod?a+b-mod:a+b;
}
inline int Del(const int&a,const int&b){
return a-b<0?a-b+mod:a-b;
}
struct Node{
int sum,squ;
inline Node operator+(const Node&it)const{
return (Node){Add(sum,it.sum),Add(squ,it.squ)};
}
}tmp,t[M<<2];
inline void update(const int&u){
t[u]=t[u<<1]+t[u<<1|1];
}
void build(int u,int l,int r){
if(l==r)t[u].sum=a[l],t[u].squ=1ll*a[l]*a[l]%mod;
else{
int mid=l+r>>1;
build(u<<1,l,mid);build(u<<1|1,mid+1,r);
update(u);
}
}
void Modify(int u,int x,int val,int l=1,int r=n){
if(l==r)t[u].sum=val,t[u].squ=1ll*val*val%mod;
else{
int mid=l+r>>1;
if(x<=mid)Modify(u<<1,x,val,l,mid);
else Modify(u<<1|1,x,val,mid+1,r);
update(u);
}
}
Node Query(int u,int L,int R,int l=1,int r=n){
if(L>r||l>R)return (Node){0,0};
if(L<=l&&r<=R)return t[u];
int mid=l+r>>1;
return Query(u<<1,L,R,l,mid)+Query(u<<1|1,L,R,mid+1,r);
}
signed main(){
register int i,f,L,R,val,inv;
scanf("%d%d",&n,&m);
for(i=1;i<=n;++i)scanf("%d",a+i);
build(1,1,n);
for(i=1;i<=m;++i){
scanf("%d%d%d",&f,&L,&R);
if(f==1){
Modify(1,L,R);
}
else{
tmp=Query(1,L,R);
inv=Inv(R-L+1);
val=1ll*inv*tmp.sum%mod;
printf("%d\n",1ll*inv*Del(Add(tmp.squ,1ll*val*val%mod*(R-L+1)%mod),2ll*val*tmp.sum%mod)%mod);
}
}
}

LGP5142题解的更多相关文章

  1. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  2. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  3. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  4. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  5. 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解

    题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...

  6. 2016ACM青岛区域赛题解

    A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  7. poj1399 hoj1037 Direct Visibility 题解 (宽搜)

    http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...

  8. 网络流n题 题解

    学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...

  9. CF100965C题解..

    求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...

随机推荐

  1. java getSource()和 getActionCommand()区别

    感谢大佬:https://blog.csdn.net/LIU_YANZHAO/article/details/72740011?utm_source=blogxgwz1 比如说 按纽的事件,同一个JF ...

  2. xargs、sort、uniq命令

    xargs.sort.uniq命令,我们由LeetCode的一道题来引入,并使用加以理解: 题目是这样的:写一个 bash 脚本以统计一个文本文件 words.txt 中每个单词出现的频率. word ...

  3. Myeclipse设置关键词自动提示功能以及取消空格和"="的自动补全

    一.设置Myeclipse从a~z的自动提示功能 1. "window"→"Preferences"2. 选择"Java",展开," ...

  4. 利用纯代码写出一个秒表表盘的方法 —— #DF

    @interface ViewController () @property (nonatomic, strong) CALayer *secLayer; // 秒针layer @property ( ...

  5. 出现Table ‘./mysql/proc’ is marked as crashed and should be repaired

    一般这种表崩溃的问题出现在mysql异常停止,或者使用kill -9命令强行杀掉进程导致,进入MySQL命令行后,执行下面的命令即可修复'./mysql/proc'表 repair table mys ...

  6. SEAL库 - 安装和介绍

    本篇文章介绍:SEAL同态库的安装和简单使用 注:使用Clang++编译的Microsoft Seal比使用GNUG++编译的Microsoft Seal具有更好的运行时性能. 1. cmake:适应 ...

  7. 【琉忆分享】新手如何学习PHP?附上PHP知识导图。

    你好,是我--琉忆.PHP程序员面试系列图书作者. 作为一名PHP开发者过来人,也是经历了菜鸟到老手的过程,在此给那些想学PHP的同学指条路,即使你是转行学PHP一样可以学会PHP. (如果觉得下面这 ...

  8. 基于TI DSP TMS320C6678、Xilinx K7 FPGA XC7K325T的高速数据处理核心板

    一.板卡概述 该DSP+FPGA高速信号采集处理板由我公司自主研发,包含一片TI DSP TMS320C6678和一片Xilinx FPGA K7 XC72K325T-1ffg900.包含1个千兆网口 ...

  9. Solution -「LOJ #6053」简单的函数

    \(\mathcal{Description}\)   Link.   积性函数 \(f\) 满足 \(f(p^c)=p\oplus c~(p\in\mathbb P,c\in\mathbb N_+) ...

  10. HMS Core积极探索基于硬件耳返的功能,帮助唱吧整体唱歌延迟率降低60%

    唱吧的使命是让唱歌更简单.让生活更美好,其布局的K歌业务专注于让曲库更全.音质更好,开创了同框合唱.弹唱等有意思的游戏类K歌玩法.为了让用户拥有更加沉浸的娱乐体验,唱吧与HMS Core积极探索基于硬 ...