记录编号 590717 评测结果 EEEEEEEEEE
题目名称 制作人偶 最终得分 0
用户昵称 Gravatardjyqjy 是否通过 未通过
代码语言 C++ 运行时间 2.018 s
提交时间 2024-07-10 18:06:57 内存使用 3.12 MiB
显示代码纯文本
//保存一下 
#include<bits/stdc++.h>
using namespace std;
const int N=510,M=5010;
const long double eps=1e-8;
int n,m;
struct cl
{
    int a,b,v;
}cs[M];
int w[N];
long double a[N],b[N],g[N][N];
int ver[4*M],hd[N],nxt[4*M];
long double edge[4*M];
int jsq;
void add(int x,int y,long double val)
{
    ver[++jsq]=y;
    edge[jsq]=val;
    nxt[jsq]=hd[x];
    hd[x]=jsq;
    return;
}
bool judge(long double val)
{
    
}
int main()
{
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&w[i]);
        b[i]+=w[i];
    }
    for(int i=1;i<=m;i++)
    {
        scanf("%d%d%d",&cs[i].a,&cs[i].b,&cs[i].v);
        a[cs[i].a]+=cs[i].v/2;
        a[cs[i].b]+=cs[i].v/2;
        g[cs[i].a][cs[i].b]+=cs[i].v/2;
        g[cs[i].b][cs[i].a]+=cs[i].v/2;
    }
    for(int i=1;i<=n;i++)
    {
        add(0,i,a[i]);
        add(i,n+1,b[i]);
        for(int j=i+1;j<=n;j++)
        {
            if(g[i][j])
            {
                add(i,j,g[i][j]);
                add(j,i,g[i][j]);
            }
        }
    }
    long double l=0,r=5e5;
    while(fabs(l-r)>eps)
    {
        long double mid=(l+r)/2;
        if(judge(mid)) l=mid;
        else r=mid;
    }
}