列式子:
如果把从i号收费站到i+1号收费站之间路段编号设为i。
假如查询l号收费站到r号收费站之间的期望值。
$ Ans_{l,r} = \sum\limits_{i=l}^{r-1} v_i \times (r-i) \times (i-l+1) $
       $ = \sum\limits_{i=l}^{r-1} v_i \times (r \times i - r \times l + r - i^2 + i \times l - i) $
       $ = \sum\limits_{i=l}^{r-1} v_i \times ( - i^2 + (r + l -1) \times i + r - r \times l) $
 我们在线段树里维护$ \sum (i^2 \times v_i) $、$ \sum (i \times v_i) $、$ \sum v_i $
有公式:$ \sum\limits_{i=1}^{n} i^2 = \frac{n \times (n+1) \times (2 \times n + 1)}{6} $
然后什么东西都好办了。
//Serene
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cstdio>
#include<cmath>
using namespace std;
const int maxn=1e5+10;
int n,m;long long aa,ff;char cc;
long long read() {aa=0;cc=getchar();ff=1;while(cc<'0'||cc>'9') {if(cc=='-') ff=-1;cc=getchar();}while(cc>='0'&&cc<='9') aa=aa*10+cc-'0',cc=getchar();return aa*ff;
}long long gcd(long long x,long long y) {return y==0? x:gcd(y,x%y);
}struct Node{long long l,r,pf,yc,lc,laz;
}node[4*maxn];void bld(int pos,long long l,long long r) {node[pos].l=l;node[pos].r=r;if(l==r) return;long long mid=(node[pos].l+node[pos].r)>>1;bld(pos<<1,l,mid); bld(pos<<1|1,mid+1,r);
}long long f(long long t) {return t*(t+1)/2*(2*t+1)/3;
}void ud(int pos) {long long v=node[pos].laz;long long l=node[pos].l,r=node[pos].r;if(!v) return ;node[pos].lc+=(r-l+1)*v;node[pos].yc+=(l+r)*(r-l+1)/2*v;node[pos].pf+=(f(r)-f(l-1))*v;if(node[pos].l!=node[pos].r) {node[pos<<1].laz+=v;node[pos<<1|1].laz+=v;}node[pos].laz=0;
}void chge(int pos,long long l,long long r,long long v) {ud(pos);if(node[pos].l==l&&node[pos].r==r) {node[pos].laz+=v;return;}node[pos].lc+=(r-l+1)*v;node[pos].yc+=(l+r)*(r-l+1)/2*v;node[pos].pf+=(f(r)-f(l-1))*v;long long mid=(node[pos].l+node[pos].r)>>1;if(r<=mid) chge(pos<<1,l,r,v);else if(l>mid) chge(pos<<1|1,l,r,v);else chge(pos<<1,l,mid,v),chge(pos<<1|1,mid+1,r,v);
}long long q(int pos,long long l,long long r,long long x,long long y) {ud(pos);if(node[pos].l==l&&node[pos].r==r) return node[pos].lc*(y-y*x)+(y+x-1)*node[pos].yc-node[pos].pf;long long mid=(node[pos].l+node[pos].r)>>1;if(r<=mid) return q(pos<<1,l,r,x,y);else if(l>mid) return q(pos<<1|1,l,r,x,y);else return q(pos<<1,l,mid,x,y)+q(pos<<1|1,mid+1,r,x,y);
}int main() {n=read();m=read();long long l,r,ans,x,y;char op;bld(1,1,n-1);for(int i=1;i<=m;++i) {do op=getchar();while(op<'C'||op>'Q');l=read();r=read();if(op=='C') chge(1,l,r-1,read());else {ans=q(1,l,r-1,l,r);x=r-l+1;x=x*(x-1)/2;y=gcd(ans,x);ans/=y;x/=y;printf("%lld/%lld\n",ans,x);}}return 0;
}

  

转载于:https://www.cnblogs.com/Serene-shixinyi/p/7608519.html

bzoj2752 高速公路相关推荐

  1. [bzoj2752]高速公路 题解(线段树)

    2752: [HAOI2012]高速公路(road) Time Limit: 20 Sec  Memory Limit: 128 MB Submit: 2102  Solved: 887 [Submi ...

  2. BZOJ2752: [HAOI2012]高速公路(road)(线段树 期望)

    Time Limit: 20 Sec  Memory Limit: 128 MB Submit: 1820  Solved: 736 [Submit][Status][Discuss] Descrip ...

  3. 激光雷达模块支持提高高速公路速度

    激光雷达模块支持提高高速公路速度 LiDAR module supports increased highway speed What's LIDAR? 自动驾驶技术的出现,无疑地扩大了激光成像探测和 ...

  4. javascript2秒后再执行_停车后5秒,车祸发生了!高速公路上你别再这样做了!| 一线微观...

    近日,济青北线发生一起交通事故, 一辆行驶在超车道的商务车, 在匝道口附近突然刹车减速并停车, 不到5秒钟的时间, 后方一辆轿车躲闪不及, 在采取紧急避险措施之后, 还是撞上了这辆突然停车的商务车, ...

  5. 监管大屏系统_高速公路监管系统大屏可视化

    0x00 项目背景 该项目用于高速公路监管.高速公路监管包括:高速公路的设备运行情况,设备维护情况,道路维护情况:交通流量分析,交通拥堵分析,拥堵溯源:事故分析,事件信息发布等. 0x01设计图 该项 ...

  6. 计算机网络分为两大阶段,【多选题】计算机网络的发展分为哪些阶段?() A. 远程终端联机阶段 B. 计算机网络阶段 C. 计算机网络互联阶段 D. 信息高速公路阶段...

    [多选题]计算机网络的发展分为哪些阶段?() A. 远程终端联机阶段 B. 计算机网络阶段 C. 计算机网络互联阶段 D. 信息高速公路阶段 更多相关问题 冰箱要定期清洗,清洗冰箱应用无腐蚀的消洁剂稀 ...

  7. 公路病害检测有了“智慧眼”,思谋AI“助力”广东省高速公路

    近日,思谋科技与广东省某高速企业达成合作,智慧交通一体化平台病害检测模块已成熟落地,将使广东省高速公路病害检测进入高频率.高效率.智能化时代,以行业领先的AI技术助力智慧交通产业的发展. 近年来,我国 ...

  8. 揭晓高速公路场景下计算机视觉与交通的秘密

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 高速公路场景基于计算机视觉的车辆检测和流量统计 1.文章信息 <Vision-based veh ...

  9. 怎样用c语言写高速超速罚款标准,pta高速公路超速处罚(C语言)

    习题3-2 高速公路超速处罚 按照规定,在高速公路上行使的机动车,达到或超出本车道限速的10%则处200元罚款:若达到或超出50%,就要吊销驾驶证.请编写程序根据车速和限速自动判别对该机动车的处理. ...

最新文章

  1. UI设计APP图标设计规范介绍
  2. 神经网络RNN图解!
  3. RDKit | PD/PD-L1抑制活性 化合物指标分析
  4. c++ primer 5th 笔记:第二章
  5. 写给后端程序员的HTTP缓存原理介绍
  6. 20180826(01)-Java数据结构
  7. Groovy预览--文本处理
  8. RAID 01 和RAID 10的区别
  9. Nest入门教程 - 初识控制器
  10. QEMU KVM libvirt手册(4) – images
  11. openLayer加载KML,画出省及省下的边界区域,并设置样式、各种标注及提示信息
  12. MySQL索引(如何设计索引)
  13. 花书+吴恩达深度学习(二十)构建模型策略(超参数调试、监督预训练、无监督预训练)
  14. if __name__ == __main__如何正确理解
  15. LoadRunner测试Google Suggest
  16. 再也不学AJAX了!(一)AJAX概述
  17. 阅读笔记-游戏开发中的人工智能-第3章-移动模式
  18. 咸鱼CAD笔记—CAD基础操作
  19. win10系统服务器管理器,win10服务管理器,详细教您Win10服务管理器怎样打开
  20. 2008年国外最漂亮的50个网站欣赏

热门文章

  1. 荣耀 Magicbook Pro 锐龙版搭载深度操作系统桌面版
  2. .NET的Math.Round与数学无关。没关系!
  3. 暴露的全局方法_Dubbo源码解析实战 - 服务暴露原理
  4. eigrp配置实验_EIGRP负载均衡的实现
  5. python自动化测试环境搭建_selenium+python自动化测试之环境搭建
  6. java g1的并行_Java 11好用吗
  7. anki 新的卡片类型_用 Anki 建立高效复习错题体系
  8. linux遍历双向队列,双向循环队列
  9. 充值后的充值金额提交到账户金额中
  10. telnet 无法连接_Telnet 为什么不能以 root 身份登录系统?