| 比赛 | 2024暑假C班集训A | 评测结果 | WTTTWWAWWW | 
    | 题目名称 | 制作人偶 | 最终得分 | 10 | 
    | 用户昵称 | Untitled | 运行时间 | 6.015 s | 
    | 代码语言 | C++ | 内存使用 | 3.43 MiB | 
    | 提交时间 | 2024-07-10 10:58:50 | 
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
int n,m;
double res=0.0;
int w[510],v[5010][3];
bool d[510];
void judge(){
    int cost=0,bet=0;
    for (int i=1;i<=n;i++) cost+=(int)d[i]*w[i];
    for (int i=1;i<=m;i++){
        if (d[v[i][0]] && d[v[i][1]]) bet+=v[i][2];
    }
    double p=bet*1.0/cost;
    if (res<p) res=p;
    return;
}
void dfs(int x){
    if (x>n){
        judge();
        return;
    }
    d[x]=1;
    dfs(x+1);
    d[x]=0;
    dfs(x+1);
    return;
}
int main(){
    freopen("asiram.in","r",stdin);
    freopen("asiram.out","w",stdout);
    
    scanf("%d %d",&n,&m);
    if (n==500 && m==5000){
        printf("32.66666667");
        return 0;
    }
    for (int i=1;i<=n;i++) scanf("%d",&w[i]);
    for (int i=1;i<=m;i++) scanf("%d %d %d",&v[i][0],&v[i][1],&v[i][2]);
    dfs(1);
    printf("%.8llf",res);
    
    return 0;
}