文学BZOJ4817 SDOI2017 相关分析

4821: [Sdoi2017]连锁分析

Time Limit: 10 Sec  Memory Limit: 128 MBSec  Special
Judge

这是温言第一涂鸦看木偶戏,学校布置去演出厅当观众,原本心里一万独无甘于,可是当禾轻轻将偷拍的常青木偶戏师傅的肖像被它看后,她不好使神差地同意了,并早地让禾轻轻拉至演出厅,找了只刚中间前排的职务。

Description

Frank对天文学非常感谢兴趣,他时用望远镜看片,同时记录下她的音讯,比如亮度、颜色等等,进而估算有

少数的去,半径等等。Frank不仅喜欢观察,还嗜分析观测到的多寡。他每每分析两个参数之间(比如亮度和

半径)是否是某种关联。现在Frank要分析参数X与Y之间的涉嫌。他发生n组观测数据,第i组观测数据记录了x_i和

y_i。他欲瞬间几种植操作1
L,R:用直线拟合第L组及底R组观测数据。用xx表示这些观测数据中x的平均数,用yy

代表这些观测数据中y的平均数,即

xx=Σx_i/(R-L+1)(L<=i<=R)

yy=Σy_i/(R-L+1)(L<=i<=R)

苟直线方程是y=ax+b,那么a应当这样算:

a=(Σ(x_i-xx)(y_i-yy))/(Σ(x_i-xx)(x_i-xx))
(L<=i<=R)

而要帮忙Frank计算a。

2 L,R,S,T:

Frank发现测量数据第L组及底R组数据产生误差,对每个i满足L
<= i <= R,x_i需要加上S,y_i需要加上T。

3 L,R,S,T:

Frank发现第L组及第R组数据要改,对于每个i满足L
<= i <= R,x_i需要修改也(S+i),y_i需要修改为(T+i)。

温言目不转睛地凝望在舞台上布景的工作人员,来来往往地身影中一直没有观望他,手机早已为捉得发烫,禾轻轻看它们底额头还有些出了几汗,从管里用了纸巾递给她,“不是起在空调嘛,怎么还这么热啊。”

Input

首先履行两只数n,m,表示观测数据组数和操作次数。

连通下一行n个数,第i个数是x_i。

接通下去一行n个数,第i个数是y_i。

对接下去m行,表示操作,格式见题目叙述。

1<=n,m<=10^5,0<=|S|,|T|,|x_i|,|y_i|<=10^5

确保1操作不见面并发分母为0的场面。

温言捏在纸巾胡乱擦了错,抬头时,舞台及之工作人员已经忙活得几近了,观众席也逐步地叫填满。

Output

对此每个1操作,输出一行,表示直线斜率a。

选手输出及正规输出的绝对误差不超越10^-5就算为对。

台上的刚巧中央是一木偶表演的小案子,两止各摆放在同样免除木偶,站方的,坐正的,微笑的,严肃的。

Sample Input

3 5
1 2 3
1 2 3
1 1 3
2 2 3 -3 2
1 1 2
3 1 2 2 1
1 1 3

粱轻轻将出手机冲击了几乎布置,“温言,这是我第一破相如此老的玩偶呢,我们本乡的木偶戏里,木偶就跟洋娃娃大小。”

Sample Output

1.0000000000
-1.5000000000
-0.6153846154

 

  本来我是未见面回忆就道题之。但是有如此一个故事:

  开学,学科,数学课,变量的相关性。

  下课后,同学等聚集于同搞事。

  QT:“你记不记SDOI2017 D2T3
相关分析?”

  我:“……蛤?”

  QT:“题目从没为您化简,数学书上化简了。”

  我:“……蛤?”

  QT:“拆起来式子之后有4独东西如果保护,我非会见(想)写。”

  我:“……蛤?”

  …………

  以机房写作业。

  QT:“不行这个数学作业太难算了,我只要编程计算。”

  Anson:“你可以打一波SDOI2017
相关分析。”

  QT(虚伪地):“我无会见打。”

  然而因为自己都从Jesse那里蒯了一个calc.cpp,作业都勾勒了了。

  然后自就是只是想看传说被之SDOI2017D2T3凡是什么开,我是未是忘的平干二皆。

  然后发现果然忘得千篇一律干二全都。

  然后便发出了底的作业。

 

  题解就是明显的线树。

  将架子拆起来羁押,你就见面收获:

 

  文学 1

  

  上下的末尾那同样截得再次化简一下。

  然后就设维护4独东西:

  

  文学 2

  

  这个就那个simple了吧,线段树嘛。

  对于操作2,3,把前后的姿势拆一下,维护一下就算哼了。

  可以先行开codevs的 线段树练习5
思路都是基本上的。

  思维难度:高中数学。

  代码难度:MDZZ。

  PS:这道题就别再codevs交了,它从未SPJ。

文学 3文学 4

#include    <iostream>
#include    <cstdio>
#include    <cstdlib>
#include    <algorithm>
#include    <vector>
#include    <cstring>
#include    <queue>
#include    <complex>
#include    <stack>
#define LL long long int
#define dob long double
#define ls (x<<1)
#define rs (x<<1|1)
using namespace std;

const int N = 400010;
struct Tree{
  dob x,y,xx,xy;
  Tree operator +(const Tree &t){
    return (Tree){x+t.x,y+t.y,xx+t.xx,xy+t.xy};
  }
}Tr[N*4];
int n,m,lazy_vis[N];
dob X[N/4],Y[N/4],lazy_add1[N],lazy_add2[N],lazy_set1[N],lazy_set2[N];

inline int gi(){
  int x=0,res=1;char ch=getchar();
  while(ch>'9'||ch<'0'){if(ch=='-')res*=-1;ch=getchar();}
  while(ch<='9'&&ch>='0')x=x*10+ch-48,ch=getchar();
  return x*res;
}

inline void build(int x,int l,int r){
  if(l==r){
    Tr[x]=(Tree){X[l],Y[l],1.0*X[l]*X[l],1.0*X[l]*Y[l]};
    return;
  }
  int mid=(l+r)>>1;
  build(ls,l,mid);build(rs,mid+1,r);
  Tr[x]=Tr[ls]+Tr[rs];
}

inline dob calc(dob l,dob r){
  return 0.5*(l+r)*(r-l+1);
}

inline dob calcpow(dob l,dob r){
  l-=1;
  dob p1=1.0*(r)*(r+1)*(2*r+1)/6.0;
  dob p2=1.0*(l)*(l+1)*(2*l+1)/6.0;
  return p1-p2;
}

inline void down(int x,int l,int r){
  int mid=(l+r)>>1,sl=mid-l+1,sr=r-mid;
  if(lazy_vis[x]){
    lazy_add1[ls]=lazy_add1[rs]=lazy_add2[ls]=lazy_add2[rs]=0;
    lazy_vis[ls]=lazy_vis[rs]=1;
    dob S=lazy_set1[x],T=lazy_set2[x];
    lazy_set1[ls]=lazy_set1[rs]=lazy_set1[x];
    lazy_set2[ls]=lazy_set2[rs]=lazy_set2[x];
    Tr[ls].xx=1.0*sl*S*S+2.0*S*calc(l,mid)+calcpow(l,mid);
    Tr[rs].xx=1.0*sr*S*S+2.0*S*calc(mid+1,r)+calcpow(mid+1,r);
    Tr[ls].xy=1.0*sl*S*T+1.0*(S+T)*calc(l,mid)+calcpow(l,mid);
    Tr[rs].xy=1.0*sr*S*T+1.0*(S+T)*calc(mid+1,r)+calcpow(mid+1,r);
    Tr[ls].x=1.0*sl*S+calc(l,mid);Tr[rs].x=1.0*sr*S+calc(mid+1,r);
    Tr[ls].y=1.0*sl*T+calc(l,mid);Tr[rs].y=1.0*sr*T+calc(mid+1,r);
    lazy_vis[x]=0;
  }
  if(lazy_add1[x] || lazy_add2[x]){
    dob S=lazy_add1[x],T=lazy_add2[x];
    lazy_add1[ls]+=S;lazy_add1[rs]+=S;
    lazy_add2[ls]+=T;lazy_add2[rs]+=T;
    Tr[ls].xx+=2.0*Tr[ls].x*S+1.0*sl*S*S;
    Tr[rs].xx+=2.0*Tr[rs].x*S+1.0*sr*S*S;
    Tr[ls].xy+=1.0*Tr[ls].x*T+1.0*Tr[ls].y*S+1.0*sl*S*T;
    Tr[rs].xy+=1.0*Tr[rs].x*T+1.0*Tr[rs].y*S+1.0*sr*S*T;
    Tr[ls].x+=1.0*sl*S;Tr[rs].x+=1.0*sr*S;
    Tr[ls].y+=1.0*sl*T;Tr[rs].y+=1.0*sr*T;
    lazy_add1[x]=lazy_add2[x]=0;
  }
}

inline Tree query_1(int x,int l,int r,int xl,int xr){
  if(xl<=l && r<=xr)return Tr[x];
  down(x,l,r);int mid=(l+r)>>1;
  if(xr<=mid)return query_1(ls,l,mid,xl,xr);
  else if(xl>mid)return query_1(rs,mid+1,r,xl,xr);
  return query_1(ls,l,mid,xl,mid)+query_1(rs,mid+1,r,mid+1,xr);
}

inline void update_2(int x,int l,int r,int xl,int xr,dob S,dob T){
  if(xl<=l && r<=xr){
    lazy_add1[x]+=S;lazy_add2[x]+=T;
    Tr[x].xx+=2.0*Tr[x].x*S+1.0*(r-l+1)*S*S;
    Tr[x].xy+=1.0*Tr[x].x*T+1.0*Tr[x].y*S+1.0*(r-l+1)*S*T;
    Tr[x].x+=1.0*(r-l+1)*S;Tr[x].y+=1.0*(r-l+1)*T;
    return;
  }
  down(x,l,r);int mid=(l+r)>>1;
  if(xr<=mid)update_2(ls,l,mid,xl,xr,S,T);
  else if(xl>mid)update_2(rs,mid+1,r,xl,xr,S,T);
  else update_2(ls,l,mid,xl,mid,S,T),update_2(rs,mid+1,r,mid+1,xr,S,T);
  Tr[x]=Tr[ls]+Tr[rs];
}

inline void update_3(int x,int l,int r,int xl,int xr,dob S,dob T){
  if(xl<=l && r<=xr){
    lazy_add1[x]=lazy_add2[x]=0;
    lazy_vis[x]=1;lazy_set1[x]=S;lazy_set2[x]=T;
    Tr[x].xx=1.0*(r-l+1)*S*S+2.0*S*calc(1.0*l,1.0*r)+calcpow(1.0*l,1.0*r);
    Tr[x].xy=1.0*(r-l+1)*S*T+1.0*(S+T)*calc(l,r)+calcpow(l,r);
    Tr[x].x=1.0*(r-l+1)*S+calc(l,r);Tr[x].y=1.0*(r-l+1)*T+calc(l,r);
    return;
  }
  down(x,l,r);int mid=(l+r)>>1;
  if(xr<=mid)update_3(ls,l,mid,xl,xr,S,T);
  else if(xl>mid)update_3(rs,mid+1,r,xl,xr,S,T);
  else update_3(ls,l,mid,xl,mid,S,T),update_3(rs,mid+1,r,mid+1,xr,S,T);
  Tr[x]=Tr[ls]+Tr[rs];
}   

int main()
{
  /*freopen(".in","r",stdin);
    freopen(".out","w",stdout);*/
  n=gi();m=gi();
  for(int i=1;i<=n;++i)X[i]=gi();
  for(int i=1;i<=n;++i)Y[i]=gi();
  build(1,1,n);
  for(int i=1;i<=m;++i){
    int type=gi();
    if(type==1){
      int l=gi(),r=gi();
      Tree ans=query_1(1,1,n,l,r);
      dob fz=ans.xy-ans.x*ans.y/(r-l+1);
      dob fm=ans.xx-ans.x*ans.x/(r-l+1);
      printf("%.10Lf\n",fz/fm);
    }
    if(type==2){
      int l=gi(),r=gi(),S=gi(),T=gi();
      update_2(1,1,n,l,r,1.0*S,1.0*T);
    }
    if(type==3){
      int l=gi(),r=gi(),S=gi(),T=gi();
      update_3(1,1,n,l,r,1.0*S,1.0*T);
    }
  }

  /*fclose(stdin);
    fclose(stdout);*/
  return 0;
}

连锁分析

 

温言盯在台上姿态各异,两三寒暑幼童般大小的玩偶胡乱地承诺了句,“啊,哦,是为?”

季轻轻微微蹙眉,总觉得温言怪怪的,见它心不在焉的,便起了只玩笑,“温言温言你快看,台上那个木偶在眨眼睛!”

温言果然猛地拿视线转向禾轻轻手指的可行性,季轻轻愣了一会儿,没有想到一个玩笑而已经,温言的动作还如此大。

温言文学脸色微微苍白,“轻轻,我们不看了吧?”

季轻轻自然是不愿意,“我刚刚就是诈骗而的,跟你开单玩笑,木偶不会见眨眼睛的……你看君看,那个帅哥来了!”

台上,一个身穿红绸长袖衬衣,白色裤子的后生手里操纵在观众席上看无展现底丝线,那个身穿鲜艳衣裙的花旦便翩翩起舞起来,观众席爆发一切开掌声。

掌声渐息,主持人开始介绍木偶戏,之后介绍了十分年轻人。

“这是咱太青春的木偶戏师傅,和台下的诸位同学可是一样的春秋哦。夏师傅,你来与同学等打个招呼吧!”

夏天致衡清冷的响声从话筒传出,“我是夏天致衡,很欣喜大家来观看我们团的木偶戏。”

主席适时地连接了话,“夏师傅是木偶大师夏海生夏大师之孙子,也是木偶戏的后者,夏师傅不但继续了夏大师的三昧,还当是基础及连发得进行了履新,而这次演出的备木偶也都是缘于夏大师的手,其制技巧的精湛,相信前排的同桌等还已经发生了无以复加直观的感触。”

温言看在夏致衡骨节分明的指尖操纵下之木偶,一阵心惊,木偶手指上的月牙竟清晰可见,就连指的纹理都活跃,看得久了,似乎并花旦脸上的笑意似乎都转移得再充分了几乎划分。

“那么看了夏大师的技巧之后,就吃咱一并来赏夏师傅的良方的精良!”

季轻轻两目盯在夏致衡,摇了摇温言的膀子,“夏师傅好美啊,又会演木偶戏,要是能当他的女对象一定幸福死了!”

文学 5

温言几不可闻地“嗯”一名誉,灯光暗了下,小台子的蒙古包拉开,这有戏名叫《识字犬》,改从清朝文学家袁枚撰写之《子不语》中之《唱歌犬》。

发端,人声鼎沸的集市,各色小贩的吆喝声传来,集市中央慢慢集聚了千篇一律堆放人,木偶惟妙惟肖地交头接耳,声音渐渐清晰,“这仅仅狗可当真了不可啊!”

“是呀是呀!竟然能认得字。”

“可不是,天下的大无奇莫产生啊!”

紧接着一只是黑色毛发的狗出现于人群中央,主人用在写满了字之几窝竹筒,一一摊开,期间被陌生人随意调换竹筒的职务,那不过黑色的狗竟按照主人说生的字一一走及竹筒边,认出了所有指示的配。

庙会上的“人”纷纷称赞,观众席也爆发出一次次掌声。

老二幕开始时,小台子的帐篷拉开,背景是同样户人家,深夜。举着刀的“人”慢慢挪至平等张桌子面前,又发生少数单“人”抬在相同一味没有毛,却添加着雷同摆设脸的狗进来,放在桌子上,接头交耳一番后,从里屋拿出几乎片黑色的肤浅。

选举在刀的“人”开始了动作。

一段时间后,桌上的“狗”有矣黑色的通货膨胀,主人将在项圈缠住狗的脖子,长长的链拴在桌腿上。

夏天致衡不慌不忙地决定在木偶,观众席的掌声也更高昂、绵长。禾轻轻红正在脸凑到温言耳边,“夏师傅算太狠心了,是未是温言?”

温言像是抚今追昔了啊可怖的事,面无血色,声音小哆嗦,“我们倒吧,不要看了。”

谷轻轻看得正入神,哪里舍得动,两人数同时因为在中央,也未极端好下。

老三帐篷,屋内的“三总人口”开始相互埋怨,识字犬是帮助他们赚了成千上万钱,可是远远不够他们几乎独嗜酒如命又好赌的幼子挥霍,等时增长了,他们为尽了,如一旦无丁连续喂养识字犬赚钱,儿子们迟早会发现是地下。

于是乎,不得已地,“三口”中的极长者为来了和睦唯一的孙子。孙子知道了祖父养识字犬的隐秘,大惊失色,甚至目睹了认识字犬由来的布满经过。

本,识字犬是故童稚做成的。正而《唱歌犬》里写的“此犬乃用三春秋孩子做成,先用药烂身上皮,使尽脱;次用狗毛烧灰,和药敷之,内服以药,使疮平复,则体生犬毛而尾出,俨然犬也。”

立刻同一帐篷,可以说凡是于观众看得目瞪口呆,台上木偶惟妙惟肖的动作,让人身临其境,仿佛真的经历了一致庙用童稚做犬的可怖情景。

末段一帐篷,长者的孙不堪父亲的凶残,终于“继承”了爷爷的留“识字犬”之学,从此在无忧。

谢幕的衍,舞台之灯光一晃举示起,温言分明看到台上夏致衡勾了下嘴角,露出一去除诡异的微笑。修长的指搭着提木偶的棍子,朝观众席微微鞠了只躬。

掌声过后,所有观众起身准备离场,禾轻轻突然将起手机为舞台中央拍了单依照,闪光灯下,温言看到花旦的眸子的眸子紧缩了产,温言抓在禾轻轻的手迅速往演出厅门口走去。

离木偶戏过去相同上了,但是温言始终一副无精打采的师,禾轻轻问其,“温言,你究竟怎么了?昨天匆匆地出后即便无与自身说了话了。”

温言一阵沉默,伸出手,“昨天打的相片还于啊?”

“要夏师傅的?”

“木偶的。”
“哦,有!”禾轻轻打开相册,找到昨天冲击的照,“我昨晚睡非正,看了那么照,越看更渗人,总看这木偶跟真人般,眼睛里的瞳孔都召开得那活灵活现……就如是咱们当扣押其,她吧克看咱们一致。”

温言看了一致肉眼准了删除键,点了规定,“是非常渗人,删了。”

“对了,温言,你看罢《唱歌犬》的故事为?”禾轻轻看正在温言,“虽然小离谱,但是到底认为非常真实的。”

温言沉默了会儿,点了条,“有吧……”

谷轻轻撇了撇嘴,没说啊,世界之死,无奇莫有。

凡的确的出。

温言十七岁经常,就来看了。不过,不是唱歌歌犬。

它躲在相同积乱之货色架后,亲眼看到那些人是怎管一个微女孩用相同种植如蜡油似的滚烫液体把剩下的亲情熔化,怎样用铁锤敲起四肢,安装上可拆的木钉……最后变成只能由人操纵才会拥有动作的……木偶。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图