A1490. osu!(乔明达)
只能过前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!(乔明达)相关推荐
- 2017清华本科生特等奖得主出炉,AI学霸乔明达获奖
说到学霸,今天偶然瞥见一条新闻,"清华"."本科生"."特等奖"--这是什么东东?虽然抱着内心会受到一万点伤害的危险,营长还是果断地点开了链 ...
- 2013百度之星月度冠军乔明达:小学五年级接触编程
百度爱好者(Baiduer.com.cn)消息 2013百度之星东部赛区区域赛的冠军出人意料的又是一位高中生,不同的是这位冠军更加年轻,他就是来自南京外国语学校高二年级的乔明达同学.由于乔明达课业繁忙 ...
- 【tsinsen A1490】osu!(乔明达) 矩阵+线段树
试题来源 2013中国国家集训队第二次作业 问题描述 osu!是一个基于<押忍!战斗!应援团><精英节拍特工><太鼓达人>等各种音乐游戏做成的一款独特的PC版音乐游 ...
- A1490. osu!(乔明达)|概率与期望|卡常|矩阵
60TLE 把要求信息拆分 用 线段树和矩阵维护 upd:fqk太劲了 加个读入优化就A过去了 #include <cstdio> #include <iostream> #i ...
- [TsinsenA1490] osu!(乔明达)
作为一名osu!玩家,这道题成功吸引到了我... 题意 长度为n的序列,给出每一个数字可能为1的概率aia_i,每个数字为0的概率为1−ai1-a_i.两个操作:修改某个数字的概率,询问一段区间得分期 ...
- A1489. 抽奖(乔明达)
题解已经讲的很清楚了,就不鬼扯了,直接上代码 1 #include<bits/stdc++.h> 2 #define maxn 100005 3 double a[maxn],p[maxn ...
- A1488. 魔法波(乔明达)
设si表示表示每个格子的状态(1表示腐地,0表示土地),xi表示对每个格子的操作状态(1表示发射,0表示不发射),可以列出异或方程si^sigma(xj)=1 然而介四O(n^6),BOOM 于是我们 ...
- Tsinsen-A1490 osu! 【数学期望】
问题描述 osu!是一个基于<押忍!战斗!应援团><精英节拍特工><太鼓达人>等各种音乐游戏做成的一款独特的PC版音乐游戏.游戏中,玩家需要根据音乐的节奏,通过鼠标 ...
- [颓废史]蒟蒻的刷题记录
QAQ蒟蒻一枚,其实我就是来提供水题库的. 以下记录从2016年开始. 1.1 1227: [SDOI2009]虔诚的墓主人 树状数组+离散化 3132: 上帝造题的七分钟 树状数组 二维区间加减+查 ...
最新文章
- Can 't connect to local MySQL server through socket '/tmp/mysql.sock '(2)
- C# 写Windows服务
- 面向JavaScript开发人员的Adobe AIR与Dreamweaver
- Asp.net团队疯了(同时发布WebMatrix, Razor, MVC3和Orchard)
- Linux主机驱动与外设驱动分离思想
- 百练OJ:1017:装箱问题
- 陶陶的兔二,建好啦!
- 数据结构 堆中的路径(最小堆)
- PWN-PRACTICE-CTFSHOW-8
- java 查找排序_查找与排序算法(Java实现)
- 基于JAVA+SpringMVC+Mybatis+MYSQL的相亲管理系统
- 福利网站!程序员面试——算法工程师面试大全第一部分
- Python3+Dlib+Opencv实现摄像头采集人脸并对表情进行实时分类判读
- Linux档案与目录管理
- 机械专业向机器人工程专业转型的可行性与前景分析
- 红巨星视频调色AE插件 Red Giant Magic Bullet Suite 16.0.0 WIN
- axios的简单封装处理
- 坦克世界未能连接至更新服务器,坦克世界连接到更新服务器失败,小猪教您怎么解决坦克世界连接到更新服务器...
- 微信小程序报错“getLocation:fail the api need to be declared in the requiredPrivateInfos field in app.js...“
- Android仿斗鱼滑动登录验证
热门文章
- 传智播客成都中心“基础加强班”优惠活动最后一期,立马围观。
- 2018年河南招生考试之友文理扫描版
- SONiC-P4实验搭建及研究SONiC管理的交换机
- C#实现图书管理系统(课程设计)——第二步、登陆界面
- 冶炼金属【暴力枚举 + 二分 + 二元不等式】
- OOM异常的发生原因
- matlab怎么定义矩阵函数,怎么在matlab定义一个函数,而这个函数输入值是矩阵,并且输出的值也是相应的矩阵?...
- hackbar使用简介!
- CT值以及窗宽窗位(未完待续)
- PythonThinking_FOR、IF以及while