指数级暴力解法
情景1-选N件物品
每件物品都有选与不选两种状态,二级制0/1表示
那n件物品的总情况就有2n种,d对应的二进制数从0~2n.
以 1010 为例, 四件物品 a b c d
如果从左往右表示 abcd
则选 a c 不选 b d
遍历代码示例如下
for (i = 0; i < total; i++)//i为情况对应的二进制数
{
int tempCost = 0;
for (j = 1; j <= n; j++)//n为物品个数
{
int state = i >> (j - 1) & 0x1;//选与不选
tempCost += price[j] * state;
}
if (tempCost >= x && tempCost < minCost)
{
minCost = tempCost;
}
}
标签:件物品,tempCost,指数,minCost,不选,解法,暴力
From: https://www.cnblogs.com/jianchuxin/p/17420270.html