In this dissertation, we study a series of problems on sequences. These problems are broadly categorized into four types: Optimization, enumeration, selection, and ordering. Problems of the first three types are generally called the searching problems. In the optimization problem, we seek for the best feasible solution. In the enumeration problem, we have to enumerate the k best feasible solutions. In the selection problem, we pick out the kth best feasible solution. In the ordering problem, we are required to reorder a sequence subject to some constraints. All problems considered in this dissertation are already known to be polynomial-time solvable, so we aim at giving efficient exact algorithms for them.