资深守护
题目链接: 酷町堂:6933
6933 母**产蛋
经验值:1200 时间限制:1000毫秒 内存限制:128MB
题目描述 Description
**场里有N只母**,编号为1,2,…,N.每只**产蛋需要花费的时间不一样,用Ti表示。但是产蛋会有一些限制,比如母**A必须在母**B前产蛋,那母**B产蛋结束之前必须让母**A产蛋完成。
**场里面的**人数非常充足,可以保证同一时刻让任意数量的母**进行产蛋。但是尽管可以同一时间产蛋,但必须满足条件限制,请你计算需要花费最小的时间代价。
输入描述 Input Description
第1行:N(母**数量) M(限制条件的个数) 空格隔开的两个整数
第2行到N+1行 每行一个整数,第i+1行Ti
第N+2行 每行包含M对以空格分隔的整数A和B,表示母**A必须先完全产蛋,然后才能开始B产蛋。这些约束永远不会形成循环,因此唯一解决方案始终是可能的。
输出描述 Output Description
所有母**产蛋完成需要的最短时间
样例输入 Sample Input
【样例输入1】 3 1 10 5 6 3 2 【样例输入2】 5 2 9 10 50 44 26 3 4 2 1
样例输出 Sample Output
【样例输出1】 11 【样例输出2】 94
数据范围及提示 Data Size & Hint
【样例1解释】
有三只母**。 每只母**产蛋所需的时间分别是10、5和6。 必须先将第3头母**完全产蛋,然后才能开始第二只母**产蛋
母**1和3最初可以同时产蛋。 母**3产蛋完毕后,母**2就可以开始了。 经过1个单位的时间后,所有母**均已完成产蛋。
1≤N≤10000
1 ≤ M ≤ 50000
1 ≤ T(i) ≤ 100000
现有思路:
1、根据题目所给,求出不需等待的母**
2、让不需等待的母**一起下蛋,求最大值
3、让等待的母**在匹配的不等待的母**下完蛋后下蛋
4、求所有等待母**下蛋时间的最大值(考虑第二步的重复)
因为学习时间不长,希望大家纠正一些错误
不需要代码,只要正确思路
谢谢!