  A prominent problem in scheduling theory is the weighted flow time problem on
one machine. We are given a machine and a set of jobs, each of them
characterized by a processing time, a release time, and a weight. The goal is
to find a (possibly preemptive) schedule for the jobs in order to minimize the
sum of the weighted flow times, where the flow time of a job is the time
between its release time and its completion time. It had been a longstanding
important open question to find a polynomial time $O(1)$-approximation
algorithm for the problem and this was resolved in a recent line of work. These
algorithms are quite complicated and involve for example a reduction to
(geometric) covering problems, dynamic programs to solve those, and LP-rounding
methods to reduce the running time to a polynomial in the input size. In this
paper, we present a much simpler $(6+\epsilon)$-approximation algorithm for the
problem that does not use any of these reductions, but which works on the input
jobs directly. It even generalizes directly to an $O(1)$-approximation
algorithm for minimizing the $p$-norm of the jobs' flow times, for any $0 < p <
\infty$ (the original problem setting corresponds to $p=1$). Prior to our work,
for $p>1$ only a pseudopolynomial time $O(1)$-approximation algorithm was known
for this variant, and no algorithm for $p<1$. For the same objective function,
we present a very simple QPTAS for the setting of constantly many unrelated
machines for $0 < p < \infty$ (and assuming quasi-polynomially bounded input
data). It works in the cases with and without the possibility to migrate a job
to a different machine. This is the first QPTAS for the problem if migrations
are allowed, and it is arguably simpler than the known QPTAS for minimizing the
weighted sum of the jobs' flow times without migration.
