关注
#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;
double a[N];
double s[N];
class UnionSet{
public:
vector<int> fa,mx,mn;
UnionSet(int n):fa(n+1),mx(n+1),mn(n+1){
for(int i=0;i<=n;i++){
fa[i]=i;
mx[i]=i;
mn[i]=i;
}
}
int find(int x){
return fa[x]=(fa[x]==x?x:find(fa[x]));
}
void merge(int a,int b){
int aa=find(a),bb=find(b);
if(aa==bb)return;
mx[bb]=max(max(mx[aa],mx[bb]),max(mn[bb],mn[aa]));
mn[bb]=min(min(mn[bb],mn[aa]),min(mx[aa],mx[bb]));
fa[aa]=bb;
return;
}
};
int main(){
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=n;i++)s[i]=s[i-1]+a[i];
UnionSet se(n);
while(m--){
int op;
cin>>op;
if(op==1){
int l,r;
cin>>l>>r;
for(int i=l;i<=r-1;i++){
se.merge(i,i+1);
}
}
else{
int x;
cin>>x;
int l=se.mn[se.find(x)];
int r=se.mx[se.find(x)];
// printf("%d %d\n",l,r);
double ans=(s[r]-s[l-1])/(r-l+1);
printf("%.10lf\n",ans);
}
}
return 0;
}大佬帮忙看看我这个为什么会超时
查看原帖
点赞 评论
相关推荐
04-03 01:14
湖南农业大学 前端工程师 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 国企还是互联网,你怎么选? #
122853次浏览 950人参与
# 找工作,行业重要还是岗位重要? #
8945次浏览 120人参与
# 五一之后,实习真的很难找吗? #
47679次浏览 345人参与
# 盲审过后你想做什么? #
13132次浏览 117人参与
# 应届生进小公司有什么影响吗 #
67329次浏览 984人参与
# 外包能不能当跳板? #
22449次浏览 192人参与
# 25届秋招公司红黑榜 #
257436次浏览 1083人参与
# 租房找室友 #
13636次浏览 98人参与
# 小厂实习有必要去吗 #
42420次浏览 260人参与
# 领导秒批的请假话术 #
10362次浏览 76人参与
# 蚂蚁集团工作体验 #
10864次浏览 70人参与
# 设计人如何选offer #
98718次浏览 690人参与
# 五一假期,你打算“躺”还是“卷”? #
34964次浏览 460人参与
# 考研可以缓解求职焦虑吗 #
21851次浏览 258人参与
# 如果校招重来我最想改变的是 #
245471次浏览 2781人参与
# 面试等了一周没回复,还有戏吗 #
116270次浏览 1079人参与
# 一句话证明你在找工作 #
292571次浏览 2411人参与
# 大疆的机械笔试比去年难吗 #
69744次浏览 603人参与
# 找工作前vs找工作后的心路变化 #
7267次浏览 64人参与
# 潍柴工作体验 #
17092次浏览 17人参与