zoukankan      html  css  js  c++  java
  • hdu2647(拓扑排序)

    链接:点击打开链接

    题意:每一个人的基本工资为888,给出两个人的关系a,b,代表a的工资比b高问满足全部条件的话,最少须要支付多少钱

    代码:

    #include <map>
    #include <queue>
    #include <stack>
    #include <string>
    #include <vector>
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <iostream>
    #include <algorithm>
    using namespace std;
    int n,m;
    vector<int> G[10005];
    int d[10005],deg[10005];
    int topo(){
        int i,j,u,v,op;
        queue<int> qu;
        for(i=1;i<=n;i++)
        if(deg[i]==0)
        qu.push(i);
        op=0;
        while(qu.size()){
            u=qu.front();
            qu.pop();
            op++;
            for(i=0;i<G[u].size();i++){
                v=G[u][i];
                deg[v]--;
                d[v]=max(d[v],d[u]+1);              //相当于求关键路劲
                if(deg[v]==0)
                qu.push(v);
            }
        }
        if(op!=n)
        return 0;
        return 1;
    }
    int main(){
        int i,j,u,v,ans;
        while(scanf("%d%d",&n,&m)!=EOF){
            for(i=1;i<=n;i++){
                G[i].clear();
                d[i]=deg[i]=0;
            }
            for(i=1;i<=m;i++){                      //反向建图拓扑更新一下
                scanf("%d%d",&u,&v);
                G[v].push_back(u);
                deg[u]++;
            }
            if(topo()==0)
            puts("-1");
            else{
                ans=0;
                for(i=1;i<=n;i++)
                ans+=d[i];
                printf("%d
    ",ans+888*n);
            }
        }
        return 0;
    }
    

  • 相关阅读:
    Ajax 一
    Ajax
    回调函数2
    回调函数
    mysql_fetch_row mysql_fetch_array
    几款主流PHP框架的优缺点评比
    关于PHP 7你必须知道的五件事
    10个实用的PHP正则表达式
    PHP实现四种基本排序算法
    10个最佳的PHP图像操作库
  • 原文地址:https://www.cnblogs.com/lytwajue/p/7270790.html
Copyright © 2011-2022 走看看