1 条题解

  • 0
    @ 2024-6-14 16:46:00
    #include<stdio.h>
    #include<algorithm>
    using namespace std;
    int n,a[2005],key[2005];
    long long ans;bool vis[2005];
    void Prim(){
        for(int i=1,x=0;i<=n;i++,x=0){
            for(int j=1;j<=n;j++)
    			if(!vis[j] && key[j]>=key[x])
                	x=j;
            vis[x]=true;
            for(int y=1;y<=n;y++)
                if(!vis[y])
    				key[y]=max(key[y],a[x]^a[y]);
        }
    }
    int main(){
        scanf("%d",&n);
        for(int i=1;i<=n;i++)scanf("%d",&a[i]);
        Prim();
        for(int i=1;i<=n;i++)ans+=(long long)key[i];
        printf("%lld",ans);
    }
    
    • 1

    信息

    ID
    825
    时间
    1000ms
    内存
    125MiB
    难度
    10
    标签
    递交数
    2
    已通过
    2
    上传者