This paper presents an algorithm for the unconstrained two-dimensional cutting problem of rectangular pieces. It proposes the two-stage general block pattern that can be cut into general blocks in two stages, with another two or more stages being required to cut the blocks into pieces. Firstly vertical cuts divide the stock sheet into segments, and then horizontal cuts divide the segments into general blocks. A general block contains general strips, and each cut on the block produces just one strip. The directions of two strips cut successively from a block are either parallel or perpendicular to each other. The algorithm uses a dynamic programming recursion to determine the strip layout on each block, solves knapsack problems to obtain the block layout on each segment and the segment layout on the sheet. The computational results indicate that the algorithm is highly efficient in improving material usage, and the computation time is reasonable. ᭧ 2005 Elsevier Ltd. All rights rese...