zoukankan      html  css  js  c++  java
  • HDU-2647-Reward

    链接:https://vjudge.net/problem/HDU-2647

    题意:

    老板发工资,存在a>b,每个人的保底工资为888,给出n个人的工资关系,求老板发的最少的工资。

    思路:

    拓扑排序,有环则-1。

    同时,给的顺序是从大到小,变成从小到大的顺序,求起来简单。

    代码:

    #include <iostream>
    #include <memory.h>
    #include <vector>
    #include <map>
    #include <algorithm>
    #include <cstdio>
    #include <math.h>
    #include <queue>
    
    using namespace std;
    
    typedef long long LL;
    
    const int MAXN = 1e4 + 10;
    
    vector<int> Group[MAXN];
    int in[MAXN];
    int value[MAXN];
    
    int n, m;
    
    bool topo()
    {
        queue<int> que;
        int cnt = 0;
        for (int i = 1;i <= n;i++)
            if (in[i] == 0)
            {
                que.push(i);
                value[i] = 888;
            }
    
        while (!que.empty())
        {
            int now = que.front();
            cnt++;
            que.pop();
            for (auto x : Group[now])
            {
                if (--in[x] == 0)
                {
                    que.push(x);
                    value[x] = value[now] + 1;
                }
            }
        }
    
        if (cnt == n)
            return true;
        return false;
    
    }
    
    int main()
    {
        int l, r;
        while (~scanf("%d%d", &n, &m))
        {
            for (int i = 1;i <= n;i++)
                Group[i].clear();
            memset(in, 0, sizeof(in));
    
            for (int i = 1; i <= m; i++)
            {
                scanf("%d%d", &l, &r);
                Group[r].push_back(l);
                in[l]++;
            }
    
            int res = 0;
            if (topo())
            {
                for (int i = 1;i <= n;i++)
                    res += value[i];
            }
            else
                res = - 1;
    
            cout << res << endl;
        }
    
    
        return 0;
    }
    

      

  • 相关阅读:
    MySQL-07-新增数据
    MySQL-06-表结构修改
    LVM-创建与增容
    Zabbix-4.0.34-安装配置
    MySQL-05-约束
    lnmp(部署在一台上面)
    shell脚本概念和yum仓库的搭建
    awk命令基础和进阶
    shell
    awk
  • 原文地址:https://www.cnblogs.com/YDDDD/p/10488026.html
Copyright © 2011-2022 走看看