A problem is considered of the allocation of a discrete resource to activities described by non-decreasing return functions; the cost of an allocation is described by any non-decreasing function, and there is a total available budget. An incremental algorithm is defined for the generation of lower and upper bounds of the optimal objective value; and conditions are given for the algorithm to produce an optimal solution, extending results of Fox and Dunstan for the case of linear cost functions. Results of numerical examples are given, including çoncave and S-shaped return and cost functions. It is observed that the proposed algorithm solves the problem parametrically for certain values of the available budget, and that an extension of the algorithm is possible to problems with additional constraints on the allocation variables.