33,008
社区成员
发帖
与我相关
我的任务
分享
<SCRIPT LANGUAGE="JavaScript">
var info=[
{store:'S1',product:2,price:50},
{store:'S2',product:3,price:80},
{store:'S3',product:2,price:40},
{store:'S4',product:5,price:60},
{store:'S5',product:2,price:42},
{store:'S6',product:5,price:65},
{store:'S7',product:4,price:100},
{store:'S8',product:1,price:30}];
var list=[2,2,5,1];
var minCost=1<<10;
var bestPath="";
F(0,0,0,"");
function F(i,j,c,p){
if(j==list.length){
minCost=(minCost<c)?minCost:c;
bestPath=p;
return; //如果买完了
}
if(i==info.length){
return; //如果逛完了
}
if(info[i].product==list[j]){
//如果有卖的,买之
F(i+1,j+1,c+info[i].price,p+" "+info[i].store);
}
F(i+1,j,c,p);//没买
}
alert(bestPath+ "\n"+ minCost);
//S3 S5 S6 S8 === 40+42+65+30=177结果正确,瞬间得出
</SCRIPT>