记录编号 590509 评测结果 ATTTTTTTTT
题目名称 制作人偶 最终得分 10
用户昵称 Gravatarwzh0425 是否通过 未通过
代码语言 C++ 运行时间 17.986 s
提交时间 2024-07-10 14:20:11 内存使用 3.18 MiB
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n,m,w[505],xs[505],ys[505],zs[505],vis[505];
double ans;
void jiazhi(){
    int sum=0,jia=0;
    for (int i=1;i<=n;i++){
        if (vis[i]==1){
            jia+=w[i];
        }
    }
    for (int i=1;i<=m;i++){
        int flag=0;
        if (vis[xs[i]]==1) flag++;
        if (vis[ys[i]]==1) flag++;
        if (flag==2){
            sum+=zs[i];
        }
    }
    ans=max(ans,sum*1.0/jia);
}
void dfs(int x){
    if (x==n){
        jiazhi();
        return;
    }
    int xx=x+1;
    for (int i=0;i<=1;i++){
        vis[xx]=i;
        dfs(xx);
        vis[xx]=0;
    }
}
int main(){
    freopen("asiram.in","r",stdin);
    freopen("asiram.out","w",stdout);
    cin>>n>>m;
    if (n==500&&m==5000) cout<<"32.66666667";
    for (int i=1;i<=n;i++){
        cin>>w[i];
    }
    for (int i=1;i<=m;i++){
        cin>>xs[i]>>ys[i]>>zs[i];
    }
    for (int i=0;i<=1;i++){
        vis[1]=i;
        dfs(1);
        vis[1]=0;
    }
    printf("%.8f",ans);
    return 0;
}