HDU4109 Instrction Arrangement

Posted smatrchen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDU4109 Instrction Arrangement相关的知识,希望对你有一定的参考价值。

关键路径入门题目

拓扑排序 每次选入度为0的点 

关键路径 每个点称为活动 只有当一个活动(也就是点)的入度为0 才能做这个活动 

 

假设一个点入度为1 被一个点x 一条弧w指着 要等这个点先等x昨晚 然后再等w的时间才能 才能执行这个点的活动 显然这个过程所需时间 就是 x+w

以此类推 一个点被n个点分别用n条弧指着 他的最早开始执行时间是 X[i] + W[i]的最大值 把全部指向他的活动+弧做完了才能开始

 

实现 在拓扑的排序的时候 取出节点now 每次边指向的节点都判断 他的开始时间finish最迟是什么时候

最后finish中最大的就是完成所有活动所需的时间

http://acm.hdu.edu.cn/showproblem.php?pid=4109

#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#include<vector>
#include<algorithm>
using namespace std;
struct node

    int to,value;
;
vector<node> nxt[1005];      //向量+结构体 邻接表
int in_degree[1005];          //节点的入度
int finish[1005];            //节点的开始时间
int m, n;
void topo() 
    queue <int> q;
    
    for (int i = 0; i < n; i++)
        if (in_degree[i] == 0) 
            finish[i] = 1;
            q.push(i);
        
            
    while (!q.empty()) 
        int now = q.front(); q.pop();
        for (int i = 0; i < nxt[now].size(); i++) 
            int to = nxt[now][i].to;
            int v = nxt[now][i].value;
            in_degree[to]--;
            finish[to] = max(finish[to], finish[now] + v);
            if (in_degree[to] == 0) q.push(to);
        
    
    int tp = 1;
    for (int i = 0; i < n; i++) 
        tp = max(tp, finish[i]);
    
    printf("%d\n", tp);

int main() 
    while (cin >> n >> m) 
        fill(finish, finish + 1005, 0);
        fill(in_degree, in_degree + 1005, 0);
        for(int i = 0; i < n; i++)
            nxt[i].clear();
        for (int i = 0; i < m; i++) 
            int a, b, c;
            scanf("%d %d %d", &a, &b, &c);
            in_degree[b]++;
            node no;
            no.to = b;
            no.value = c;
            nxt[a].push_back(no);
        
        topo();
    

    return 0;

 

以上是关于HDU4109 Instrction Arrangement的主要内容,如果未能解决你的问题,请参考以下文章

无法编译生成的注册码 - MT4109

Openjudge 百练第4109题

Welcome Party ZOJ - 4109 (思维+并查集)

ZOJ4109 Welcome Party

P4109 [HEOI2015]定价 贪心

P4109 [HEOI2015]定价