#luoguP3074. [USACO13FEB] Milk Scheduling S

[USACO13FEB] Milk Scheduling S

本题没有可用的提交语言。

题目描述

农夫约翰有 NN 头奶牛(1N1041 \leq N \leq 10^4),编号为 11NN。每头奶牛 ii 挤奶需要 TiT_i 单位时间。由于牛棚的布局限制,某些奶牛必须在其他奶牛之前完成挤奶。例如,若奶牛 AA 必须在奶牛 BB 之前挤奶,则 AA 必须完全挤奶完成后,才能开始挤奶 BB

为了尽快完成挤奶,约翰雇用了大量工人,可以同时为任意多头奶牛挤奶。但由于存在先后顺序约束,整个挤奶过程仍需遵循特定顺序。请计算挤奶过程的最短总时间。

输入格式

  • 第一行:两个整数 NN(奶牛数量)和 MM(约束条件数量,1M5×1041 \leq M \leq 5\times 10^4)。
  • 22N+1N+1 行:每行一个整数 TiT_i,表示第 ii 头奶牛的挤奶时间(1Ti1051 \leq T_i \leq 10^5)。
  • N+2N+2N+M+1N+M+1 行:每行两个整数 AABB,表示奶牛 AA 必须完全挤奶后,才能开始挤奶牛 BB。所有约束条件不会形成循环,保证有解。

输出格式

  • 一行:输出完成所有挤奶的最短总时间。
3 1 
10 
5 
6 
3 2 

11 

提示

共有 33 头奶牛,挤奶时间分别为 10,5,610,5,6。奶牛 33 必须在奶牛 22 之前完成挤奶。

初始时,奶牛 1133 可同时挤奶(耗时 101066)。奶牛 33 完成后,开始挤奶牛 22(总耗时 6+5=116 + 5 = 11)。