91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 2KB
    文件類型: .cpp
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-06-09
  • 語言: C/C++
  • 標(biāo)簽: 回溯法??C++??

資源簡介

給定N種物品和一個背包。物品i的重量是wi,其價值為vi,背包的容量為c。應(yīng)該如何選擇裝入背包的物品,使裝入背包中物品的總價值最大? 在選擇裝入背包的物品時,對每種物品i只有2種選擇,即裝入背包或不裝入背包,不能將物品i裝入背包多次,也不能只裝入部分的物品i

資源截圖

代碼片段和文件信息

#include?
#include?
int?n;?//物品數(shù)量
double?c;?//背包容量
double?p[100];?//排序后物品價值
double?pp[100];?//物品價值
double?w[100];?//排序后物品重量
double?ww[100];?//物品重量
double?cw=0.0;?//當(dāng)前重量
double?cp=0.0;?//當(dāng)前價值
double?bestp=0.0;?//當(dāng)前最優(yōu)價值
double?perp[100];?//單位物品價值(排序后)
int?order[100];????//排序
int?put[100];?//0為不裝,1為裝


void?Knapsack()//按單位價值排序函數(shù)
{
????int?ij;
????int?temporder=0;
????double?temp=0.0;
????for(i=1;i<=n;i++)?
????{
????????put[i]=0;
????????order[i]=i;
????????p[i]=pp[i];
????????w[i]=ww[i];
????}
????for(i=1;i<=n;i++)
????????perp[i]=pp[i]/ww[i];
????for(i=1;i<=n-1;i++)
????????for(j=i+1;j<=n;j++)
????????????if(perp[i]????????????{
????????????????temp=perp[i];
????????????????perp[i]=perp[j];
????????????????perp[j]=temp;
????????????????temporder=order[i];
????????????????order[i]=order[j];
????????????????order[j]=temporder;
????????????????temp=p[i];
????????????????p[i]=p[j];
????????????????p[j]=temp;
???????????????

評論

共有 條評論