洛谷 P1113 雜務(拓撲排序 巧妙做法)

2021-10-08 00:23:55 字數 937 閱讀 8094

直觀做法:拓撲排序

巧妙做法:根據某個任務的前驅標號必定比其小,可以不斷地動態更新每個任務完成的最終時間。

// 拓撲排序

#include

#include

#include

#include

#define maxn 10010

#define maxm 200010

using

namespace std;

int n,u,v,w,cnt,in[maxn]

,head[maxn]

,mx[maxn]

,res,t[maxn]

;queue<

int> q;

struct edgeedge[maxm]

;void

addedge

(int u,

int v)

void

topo()

}for

(int i=

1;i<=n;i++

)res=

max(res,mx[i]);

}int

main()

}topo()

;printf

("%d"

,res)

;return0;

}

// 不用拓撲排序的巧妙做法

#include

#include

#define maxn 10010

using

namespace std;

int n,len,u,v,res[maxn]

,ans;

intmain()

printf

("%d\n"

,ans)

;return0;

}

洛谷 P1113 雜務 簡單拓撲排序

洛谷 p1113 雜務 簡單拓撲排序 基本就是一道拓撲排序裸題。include include include include include include include include define max 10005 define inf 0x3f3f3f3f typedef long lo...

洛谷 P1113 雜務

一看見有序我們就想到了dag圖,於是用topsort做,對於每乙個加入佇列的頂點,都用它的時間去更新它所指向的點的時間,本質上仍是dp的思想,dp i max ti i j i include include include include include include include using...

洛谷 P1113 雜務 vector

本題說有些雜務是有前提條件的,而有乙個特性就是某個雜務的前提一定在這個雜務前面輸入,那麼,這個題就瞬間淪為了黃題.對於那些有前提條件的雜務,我們只需要找它的前提條件中最晚完成的那個加上自己的時間就是這個雜務最早完成的時間.再在全部雜務中找最晚的那個,就是答案.1 include2 include3 ...