SQL SERVER 最优算法匹配问题

小弟遇到一个业务算法问题。百思不得其解

目前有13、15、19、20、22、33、37、45、49、50、51、53、55、58座的车型

现在需要安排最少的车,并且能刚好坐满的最好,可以满足乘车人数,并最大化利用车型座位资源

比如有80个人乘车。那么最优的是58座的车一台、22座的车一台共两台
再比如121个人乘车,那么最优的应该是55一台、33座的车两台共三台

其中车型座位数会存在变化,需要灵活计算。意思是可能会有其他座位的车型参与运算

跪求思路、求指导

背包问题
http://baike.baidu.com/link?url=Fm1gKgocKE2gniuWVMYgdZFUn1H64zxSgC3Yyk_uWFKSN1bQUWWvGU7u52-iaRNgH6cgvA_UXL08MP_Rfp2hObPJ-jEzu16deAt8E_GaULrieb4ixPdqPO5yTaEmf37K