社区讨论

蒟蒻用并查集做的,结果得零分……求大佬查错QAQ……

P2422良好的感觉参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@mi7pdudx
此快照首次捕获于
2025/11/21 01:26
4 个月前
此快照最后确认于
2025/11/21 01:26
4 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
int data[100001],sum[100001],fa[100001],id[100001],n;
long long ans;
int cmp(int a,int b){return data[a]<data[b];}
int father(int i)
{
    if(fa[i]==i)return i;
    fa[i]=father(fa[i]);
    return fa[i];
}
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>data[i];
        id[i]=i;
        fa[i]=i;
        sum[i]=data[i];
    }
    sort(id+1,id+n+1,cmp);
    for(int i=n-1;i>=1;i--){
        int t=id[i],s=data[t],r1,r;
        if(data[t-1]>=data[t]){
            r=father(t-1);
            s+=sum[r];
            fa[t]=r;
            sum[r]+=sum[t];
        }
        if(data[t+1]>=data[t]){
            r1=father(t+1);
            s+=sum[r1];
            fa[t]=r1;
            sum[r1]+=sum[t];
        }
        if(s*data[t]>ans)ans=s*data[t];
    }
    cout<<ans;
}

回复

0 条回复,欢迎继续交流。

正在加载回复...