CF 17B 水题

来源:互联网 发布:人工智能创业公司 编辑:程序博客网 时间:2024/05/17 01:49

有n个人然后给他们分配从属关系 只有一个人是没有上级的,求最小花费

#include <cstdio>#include <algorithm>#include <iostream>#include <vector>using namespace std;typedef long long ll;int q[1005];vector<int> b[1005];int main(){    int n;    scanf("%d",&n);    for(int i=1;i<=n;i++)        scanf("%d",&q[i]);    int m;scanf("%d",&m);    while(m--)    {        int u,v,w;        scanf("%d%d%d",&u,&v,&w);        if(q[u]<=q[v])            continue;        b[v].push_back(w);    }    int ans=0,cnt=-1;    for(int i=1;i<=n;i++)        if(b[i].size())            ans+=*min_element(b[i].begin(),b[i].end());        else        {            cnt++;            if(cnt)               break;        }    cnt?printf("-1"):printf("%d",ans);}
0 0
原创粉丝点击