只能过前60%,还在罗

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3
 4 #define maxn 550000
 5 #define lson rt<<1,l,mid
 6 #define rson rt<<1|1,mid+1,r
 7 double a[maxn];
 8
 9 struct node{
10     int l,r;
11     double s0,s1,s2[4];
12     node(){
13         l=r=0;
14         s0=s1=0;
15         for(int i=0;i<4;i++)s2[i]=0;
16     }
17 }tree[maxn<<2];
18
19 node push_up(node b,node c){
20     node ans;
21     ans.l=b.l,ans.r=c.r;
22     ans.s0=b.s0+c.s0-a[b.r]*a[c.l];
23     ans.s1=b.s1+c.s1;
24     ans.s2[0]=b.s2[0]*c.s2[0];
25     ans.s2[1]=b.s2[0]*c.s2[1]+b.s2[1];
26     ans.s2[2]=b.s2[2]*c.s2[0]+c.s2[2];
27     ans.s2[3]=b.s2[2]*c.s2[1]+b.s2[3]+c.s2[3];
28     return ans;
29 }
30 void build(int rt,int l,int r){
31     if(l==r){
32         tree[rt].l=l,tree[rt].r=r;
33         tree[rt].s0=tree[rt].s1=a[l];
34         for(int i=0;i<4;i++)tree[rt].s2[i]=a[l];
35         tree[rt].s2[1]+=a[l];
36         return;
37     }
38     int mid=(l+r)>>1;
39     build(lson),build(rson);
40     tree[rt]=push_up(tree[rt<<1],tree[rt<<1|1]);
41 }
42 void update(int rt,int pos,double x){
43     if(tree[rt].l==tree[rt].r){
44         tree[rt].s0=tree[rt].s1=x;
45         for(int i=0;i<4;i++)tree[rt].s2[i]=x;
46         tree[rt].s2[1]+=x;
47         return;
48     }
49     int mid=(tree[rt].l+tree[rt].r)>>1;
50     if(pos<=mid)update(rt<<1,pos,x);
51     else update(rt<<1|1,pos,x);
52     tree[rt]=push_up(tree[rt<<1],tree[rt<<1|1]);
53 }
54 node query(int rt,int ql,int qr){
55     if(ql<=tree[rt].l&&qr>=tree[rt].r)return tree[rt];
56     int mid=(tree[rt].l+tree[rt].r)>>1;
57     node ans;
58     if(ql<=mid)ans=query(rt<<1,ql,qr);
59     if(qr>mid)ans=push_up(ans,query(rt<<1|1,ql,qr));
60     return ans;
61 }
62 int main(){
63     int n,m,x,y,op;
64     double z;
65     scanf("%d%d",&n,&m);
66     for(int i=1;i<=n;i++)
67         scanf("%lf",&a[i]);
68     build(1,1,n);
69     for(int i=1;i<=m;i++){
70         scanf("%d",&op);
71         if(!op){
72             scanf("%d%d",&x,&y);
73             node fnl=query(1,x,y);
74             printf("%.2lf\n",fnl.s0+fnl.s1+fnl.s2[3]);
75         }
76         else{
77             scanf("%d%lf",&x,&z);
78             a[x]=z;
79             update(1,x,z);
80         }
81     }
82     return 0;
83 }

View Code

转载于:https://www.cnblogs.com/Ngshily/p/5038596.html

A1490. osu!(乔明达)相关推荐

  1. 2017清华本科生特等奖得主出炉,AI学霸乔明达获奖

    说到学霸,今天偶然瞥见一条新闻,"清华"."本科生"."特等奖"--这是什么东东?虽然抱着内心会受到一万点伤害的危险,营长还是果断地点开了链 ...

  2. 2013百度之星月度冠军乔明达:小学五年级接触编程

    百度爱好者(Baiduer.com.cn)消息 2013百度之星东部赛区区域赛的冠军出人意料的又是一位高中生,不同的是这位冠军更加年轻,他就是来自南京外国语学校高二年级的乔明达同学.由于乔明达课业繁忙 ...

  3. 【tsinsen A1490】osu!(乔明达) 矩阵+线段树

    试题来源 2013中国国家集训队第二次作业 问题描述 osu!是一个基于<押忍!战斗!应援团><精英节拍特工><太鼓达人>等各种音乐游戏做成的一款独特的PC版音乐游 ...

  4. A1490. osu!(乔明达)|概率与期望|卡常|矩阵

    60TLE 把要求信息拆分 用 线段树和矩阵维护 upd:fqk太劲了 加个读入优化就A过去了 #include <cstdio> #include <iostream> #i ...

  5. [TsinsenA1490] osu!(乔明达)

    作为一名osu!玩家,这道题成功吸引到了我... 题意 长度为n的序列,给出每一个数字可能为1的概率aia_i,每个数字为0的概率为1−ai1-a_i.两个操作:修改某个数字的概率,询问一段区间得分期 ...

  6. A1489. 抽奖(乔明达)

    题解已经讲的很清楚了,就不鬼扯了,直接上代码 1 #include<bits/stdc++.h> 2 #define maxn 100005 3 double a[maxn],p[maxn ...

  7. A1488. 魔法波(乔明达)

    设si表示表示每个格子的状态(1表示腐地,0表示土地),xi表示对每个格子的操作状态(1表示发射,0表示不发射),可以列出异或方程si^sigma(xj)=1 然而介四O(n^6),BOOM 于是我们 ...

  8. Tsinsen-A1490 osu! 【数学期望】

    问题描述 osu!是一个基于<押忍!战斗!应援团><精英节拍特工><太鼓达人>等各种音乐游戏做成的一款独特的PC版音乐游戏.游戏中,玩家需要根据音乐的节奏,通过鼠标 ...

  9. [颓废史]蒟蒻的刷题记录

    QAQ蒟蒻一枚,其实我就是来提供水题库的. 以下记录从2016年开始. 1.1 1227: [SDOI2009]虔诚的墓主人 树状数组+离散化 3132: 上帝造题的七分钟 树状数组 二维区间加减+查 ...

最新文章

  1. Can 't connect to local MySQL server through socket '/tmp/mysql.sock '(2)
  2. C# 写Windows服务
  3. 面向JavaScript开发人员的Adobe AIR与Dreamweaver
  4. Asp.net团队疯了(同时发布WebMatrix, Razor, MVC3和Orchard)
  5. Linux主机驱动与外设驱动分离思想
  6. 百练OJ:1017:装箱问题
  7. 陶陶的兔二,建好啦!
  8. 数据结构 堆中的路径(最小堆)
  9. PWN-PRACTICE-CTFSHOW-8
  10. java 查找排序_查找与排序算法(Java实现)
  11. 基于JAVA+SpringMVC+Mybatis+MYSQL的相亲管理系统
  12. 福利网站!程序员面试——算法工程师面试大全第一部分
  13. Python3+Dlib+Opencv实现摄像头采集人脸并对表情进行实时分类判读
  14. Linux档案与目录管理
  15. 机械专业向机器人工程专业转型的可行性与前景分析
  16. 红巨星视频调色AE插件 Red Giant Magic Bullet Suite 16.0.0 WIN
  17. axios的简单封装处理
  18. 坦克世界未能连接至更新服务器,坦克世界连接到更新服务器失败,小猪教您怎么解决坦克世界连接到更新服务器...
  19. 微信小程序报错“getLocation:fail the api need to be declared in the requiredPrivateInfos field in app.js...“
  20. Android仿斗鱼滑动登录验证

热门文章

  1. 传智播客成都中心“基础加强班”优惠活动最后一期,立马围观。
  2. 2018年河南招生考试之友文理扫描版
  3. SONiC-P4实验搭建及研究SONiC管理的交换机
  4. C#实现图书管理系统(课程设计)——第二步、登陆界面
  5. 冶炼金属【暴力枚举 + 二分 + 二元不等式】
  6. OOM异常的发生原因
  7. matlab怎么定义矩阵函数,怎么在matlab定义一个函数,而这个函数输入值是矩阵,并且输出的值也是相应的矩阵?...
  8. hackbar使用简介!
  9. CT值以及窗宽窗位(未完待续)
  10. PythonThinking_FOR、IF以及while