P3707 [SDOI2017]相关分析


线段树裸题?但是真的很麻烦QAQ

题目给的式子是什么不用管,大力拆开,就是\(\frac{\sum x_iy_i-\overline xy_i-\overline yx_i+\overline x\overline y}{\sum x_i^2-2x_i\overline x+\overline x^2}\)

然后发现需要维护\(\sum x,\sum y,\sum xy,\sum x^2\)

剩下的就是维护两个标记,具体自己推吧,懒得写了,看代码,咕咕咕咕

#include<bits/stdc++.h>
#define il inline
#define vd void
#define rg register
typedef long long ll;
il int gi(){int x=0,f=1;char ch=getchar();while(!isdigit(ch)){if(ch=='-')f=-1;ch=getchar();}while(isdigit(ch))x=x*10+ch-'0',ch=getchar();return x*f;
}
struct data{double xy,x,y,x2;}s[400010];
il data operator +(const data&a,const data&b){return(data){a.xy+b.xy,a.x+b.x,a.y+b.y,a.x2+b.x2};}
bool lz0[400010],lz1[400010];
double lz0x[400010],lz0y[400010];
double lz1x[400010],lz1y[400010];
#define mid ((l+r)>>1)
il double ssum(int x){return 0.50*x*(x+1);}
il double ssqr(int x){return 1.00/6*x*(x+1)*(x*2+1);}
il vd Overwrite(int x,int l,int r,double x0,double y0){lz1[x]=1,lz0[x]=0;lz1x[x]=x0,lz1y[x]=y0;s[x]=(data){x0*y0*(r-l+1)+(x0+y0)*ssum(r-l+1)+ssqr(r-l+1),x0*(r-l+1)+ssum(r-l+1),y0*(r-l+1)+ssum(r-l+1),x0*x0*(r-l+1)+ssqr(r-l+1)+ssum(r-l+1)*x0*2};
}
il vd Modify(int x,int l,int r,double x1,double y1){if(!lz0[x])lz0[x]=1,lz0x[x]=lz0y[x]=0;lz0x[x]+=x1,lz0y[x]+=y1;s[x]=s[x]+(data){s[x].x*y1+s[x].y*x1+x1*y1*(r-l+1),(r-l+1)*x1,(r-l+1)*y1,s[x].x*x1*2+x1*x1*(r-l+1)};
}
il vd down(int x,int l,int r){if(lz1[x])Overwrite(x<<1,l,mid,lz1x[x],lz1y[x]),Overwrite(x<<1|1,mid+1,r,lz1x[x]+(mid-l+1),lz1y[x]+(mid-l+1)),lz1[x]=0;if(lz0[x])Modify(x<<1,l,mid,lz0x[x],lz0y[x]),Modify(x<<1|1,mid+1,r,lz0x[x],lz0y[x]),lz0[x]=0;
}
double X[100010],Y[100010];
il vd build(int x,int l,int r){if(l==r){s[x]=(data){X[l]*Y[l],X[l],Y[l],X[l]*X[l]};return;}build(x<<1,l,mid),build(x<<1|1,mid+1,r);s[x]=s[x<<1]+s[x<<1|1];
}
il vd update_M(int x,int l,int r,const int&L,const int&R,const double&x0,const double&y0){if(L<=l&&r<=R)return Modify(x,l,r,x0,y0);down(x,l,r);if(L<=mid)update_M(x<<1,l,mid,L,R,x0,y0);if(mid<R)update_M(x<<1|1,mid+1,r,L,R,x0,y0);s[x]=s[x<<1]+s[x<<1|1];
}
il vd update_O(int x,int l,int r,const int&L,const int&R,const double&x0,const double&y0){if(L<=l&&r<=R)return Overwrite(x,l,r,x0,y0);down(x,l,r);if(L<=mid){update_O(x<<1,l,mid,L,R,x0,y0);if(mid<R)update_O(x<<1|1,mid+1,r,L,R,x0+(mid-std::max(l,L)+1),y0+(mid-std::max(l,L)+1));}else update_O(x<<1|1,mid+1,r,L,R,x0,y0);s[x]=s[x<<1]+s[x<<1|1];
}
il data query(int x,int l,int r,const int&L,const int&R){if(L<=l&&r<=R)return s[x];down(x,l,r);if(L<=mid)if(mid<R)return query(x<<1,l,mid,L,R)+query(x<<1|1,mid+1,r,L,R);else return query(x<<1,l,mid,L,R);else return query(x<<1|1,mid+1,r,L,R);
}
int main(){
#ifndef ONLINE_JUDGEfreopen("3707.in","r",stdin);freopen("3707.out","w",stdout);
#endifint n=gi(),m=gi();for(rg int i=1;i<=n;++i)X[i]=gi();for(rg int i=1;i<=n;++i)Y[i]=gi();build(1,1,n);int o,l,r;double S,T;while(m--){o=gi();l=gi(),r=gi();if(o==1){data D=query(1,1,n,l,r);rg double px=D.x/(r-l+1),py=D.y/(r-l+1);printf("%.10lf\n",(D.xy-px*D.y-py*D.x+px*py*(r-l+1))/(D.x2-2*px*D.x+px*px*(r-l+1)));}else{S=gi(),T=gi();if(o==2)update_M(1,1,n,l,r,S,T);else update_O(1,1,n,l,r,S+l-1,T+l-1);}}return 0;
}

转载于:https://www.cnblogs.com/xzz_233/p/9740697.html

P3707 [SDOI2017]相关分析相关推荐

  1. BZOJ.4821.[SDOI2017]相关分析(线段树)

    BZOJ LOJ 洛谷 恶心的拆式子..然后就是要维护\(\sum x_i,\ \sum y_i,\ \sum x_iy_i,\ \sum x_i^2\). 操作三可以看成初始化一遍,然后同操作二. ...

  2. 【BZOJ4821】【SDOI2017】相关分析 [线段树]

    相关分析 Time Limit: 10 Sec  Memory Limit: 128 MB [Submit][Status][Discuss] Description Frank对天文学非常感兴趣,他 ...

  3. LOJ刷题记录:2000-2005(SDOI2017)

    LOJ刷题记录:2000-2005(SDOI2017) 立一个flag-loj不跳题刷题233 loj2000. 「SDOI2017」数字表格 求: ∏1≤i≤n∏1≤j≤mf(gcd(i,j)) \ ...

  4. 二分类变量相关性分析spss_spss:两个有序分类变量的相关分析『kendallstau-b相关系数』...

    SPSS :两个有序分类变量的相关分析 『 Kendall''''s tau-b 相关系数』 一.问题与数据 某研究者开展了一项人们对税收看法的调查,拟调查人们对 "本国税收过高" ...

  5. 相关分析在微生物生态学中的应用与误用

    摘要 生物信息学分析流程中常包含相关分析,用于推断分类单元之间的相互作用.我们重点强调了使用协方差分析和推荐方法分析相互作用的误区,研究了设计考量因素和改进高通量数据相互作用分析的其他数据类型.结论表 ...

  6. [Sdoi2017]硬币游戏 [高斯消元 KMP]

    [Sdoi2017]硬币游戏 题意:硬币序列,H T等概率出现,\(n \le 300\)个人猜了一个长为$ m \le 300$的字符串,出现即获胜游戏结束.求每个人获胜概率 考场用了[1444: ...

  7. python实现案例_基于Python实现相关分析案例

    节选自<Python预测之美:数据分析与算法实战>. 相关关系是一种非确定的关系,就好像身高与体重的关系一样,它们之间不能用一个固定的函数关系来表示.而相关分析就是研究这种随机变量间相关关 ...

  8. 【SDOI2017】天才黑客

    [SDOI2017]天才黑客 这题太神了. 先模Claris 大神的题解. 首先我们要将边转换为点.如果暴力连边就会有\(m^2\)的边,于是我们考虑优化建图. 难点在于快速得到两个边的串的\(lcp ...

  9. 【BZOJ4820】[SDOI2017]硬币游戏(高斯消元)

    [BZOJ4820][SDOI2017]硬币游戏(高斯消元) 题面 BZOJ 洛谷 题解 第一眼的感觉就是构\(AC\)自动机之后直接高斯消元算概率,这样子似乎就是\(BZOJ1444\)了.然而点数 ...

  10. 数据分析(排序,数据特征、平均数、方差等,累计统计,相关分析)

    # hanbb # come on!!! import pandas as pd import numpy as np import matplotlib.pyplot as pltdf = pd.D ...

最新文章

  1. flask_入门教程之一
  2. Deep-Learning-with-Python] 文本序列中的深度学习
  3. POJ 1469 匈牙利算法
  4. 没有返回值的方法mock怎么写_【方法】小学生怎么写读书笔记?
  5. 冯乐乐 unity_Unity常用矩阵运算的推导补遗——切线空间
  6. 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败
  7. html5中checkbox的选中状态的设置与获取
  8. 上海人工智能实验室招聘NLP研究员和工程师啦,是事业单位呦~
  9. 解决flash builder 4.6安装过程中安装程序遇到错误(-1)
  10. mysql中Mysql模糊查询like效率,以及更高效的写法和sql优化方法
  11. easypr4android,车牌识别系统EasyPR的批量识别功能测试界面
  12. macbook配置java环境变量_mac上java环境变量配置
  13. 夜曲歌词 拼音_夜曲歌词 周杰伦夜曲LRC歌词_九酷音乐
  14. 图扑数字孪生智慧隧道,新基建带来新生活
  15. 我爱淘二次冲刺阶段4
  16. 查找相交链表相交节点
  17. 数据库设计三大范式之第一范式不可违反
  18. C++程序设计同步实践宝典——前言
  19. Android学习日记
  20. v-viewer 插件图片点击放大预览的几种使用方法

热门文章

  1. Dell T3610 台式工作站UEFI模式安装Win7系统
  2. ICML(2020)对抗学习论文汇总
  3. 正则与pandas处理行数据
  4. 征稿通知 | 2019亚洲语言处理国际大会(IALP2019)开始征稿
  5. leetcode—10.栈题型python解答
  6. 游戏动词和宾语设计案例精选
  7. 名企面试官精讲典型编程题之数据结构字符串篇
  8. CSDN《程序员》杂志创始人蒋涛-推荐《程序员职场第一课》
  9. 面向对象设计必须学习的三层应用程序模型
  10. 188. 买卖股票的最佳时机 IV