  In project management, a project is typically described as an
activity-on-edge network (AOE network), where each activity / job is
represented as an edge of some network $N$ (which is a DAG). Some jobs must be
finished before others can be started, as described by the topology structure
of $N$. It is known that job $j_i$ in normal speed would require $b_i$ days to
be finished after it is started. Given the network $N$ with the associated edge
lengths $b_1,\ldots,b_m$, the duration of the project is determined, which
equals the length of the critical path (namely, the longest path) of $N$.
  To speed up the project (i.e. reduce the duration), the manager can crash a
few jobs (namely, reduce the length of the corresponding edges) by investing
extra resources into that job. However, the time for completing $j_i$ has a
lower bound due to technological limits -- it requires at least $a_i$ days to
be completed. Moreover, it is expensive to buy resources. Given $N$ and an
integer $k\geq 1$, the $k$-crashing problem asks the minimum amount of
resources required to speed up the project by $k$ days. We show a simple and
efficient algorithm with an approximation ratio
$\frac{1}{1}+\ldots+\frac{1}{k}$ for this problem.
  We also study a related problem called $k$-LIS, in which we are given a
sequence $\omega$ of numbers and we aim to find $k$ disjoint increasing
subsequence of $\omega$ with the largest total length. We show a
$(1-\frac{1}{e})$-approximation algorithm which is simple and efficient.
