社区讨论

9个RE求助!!!

P1090[NOIP 2004 提高组] 合并果子参与者 3已保存回复 5

讨论操作

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

当前回复
5 条
当前快照
1 份
快照标识符
@mi6h91wf
此快照首次捕获于
2025/11/20 04:51
4 个月前
此快照最后确认于
2025/11/20 04:51
4 个月前
查看原帖
CPP
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
int n,a[10000+100],k,m,j,ans=0,lin=0;
    cin>>n;
    cin>>a[1];
    for(int i=2;i<=n;i++){
        cin>>a[i];
        j=i;
        while(a[j]<a[j/2]&&j>1){
            int tmp=a[j];
            a[j]=a[j/2];
            a[j/2]=tmp;
            j/=2;
        }
    }
    int v=n;lin=a[1];
    for(int q=1;q<=n-1;q++){
        a[1]=lin;
        while(a[q]<a[q/2]&&q>1){
            int tmp=a[q];
            a[q]=a[q/2];
            a[q/2]=tmp;
            q/=2;
        }
        k=1;
        a[1]=a[v--];
        while((a[k]>a[2*k]&&k*2<=v)||(a[k]>a[k*2+1]&&k*2+1<=v)){
         m=k*2;
        if(a[m]>a[m+1]&&m+1<=v)m++;
        int temp=a[k];
            a[k]=a[m];
            a[m]=temp;
            k=m;     
        }lin+=a[1];
        ans+=lin;
    } cout<<ans;
    return 0;
}

回复

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

正在加载回复...