背包容量计算

来源:互联网 发布:农村淘宝手机版 编辑:程序博客网 时间:2024/06/10 03:17


// 计算背包容量// nBindType: 要计算的绑定类型//   (0=可容纳非绑定数量 1=可容纳绑定数量 2=最少可容纳混合的数量)// nFreeGrid: 空格数量// nMaxPerGrid: 每个空格可容纳的数量// nFreeBind: 可通过叠加容纳的数量(绑定)// nFreeNoBind: 可通过叠加容纳的数量(非绑定)int GetBagTotalFreeCount(int nBindType, int nFreeGrid,int nMaxPerGrid, int nFreeBind, int nFreeNoBind){int nTotalFreeCount = nFreeGrid * nMaxPerGrid;if(nBindType == 0){// 不绑定的nTotalFreeCount += nFreeNoBind;}else if(nBindType == 1){// 绑定的nTotalFreeCount += nFreeBind;}else{// 混合的int nAddMax = max(nFreeBind, nFreeNoBind);int nAddMin = min(nFreeBind, nFreeNoBind);if(nTotalFreeCount == 0 || nAddMax >= nMaxPerGrid){nTotalFreeCount += nAddMin;}else{// 极端情况下,一个空格只能放绑定或者非绑定中的1个nTotalFreeCount -= (nMaxPerGrid-1);nTotalFreeCount += (nFreeBind + nFreeNoBind);}}return nTotalFreeCount;}