热门

最新

红包

立Flag

投票

同城

我的

发布
yuanxiaobaiyhb
yuanxiaobaiyhb
5 年前
trueyuanxiaobaiyhb

大一C语言编程菜鸡对完全背包问题的疑问(心累)?
以下为我对完全背包问题的想法,不知道哪里有问题,但最后结果有时会出现错误,但不知道为什么会出现错误。希望有大佬能对我进行教导和对这道题目通俗点的讲解了,真心感谢!!!







#include <stdio.h>

#include <stdlib.h>



int main()

{

int N,V,minV;

int value=0;

float a[1000],b[1000],c[1000],maxc;

int i,j,t=0;

scanf("%d %d",&N,&V);

for(i=0;i<N;i++)

scanf("%f %f",&a[i],&b[i]);

for(i=0;i<N;i++)

c[i]=b[i]/a[i];

minV=a[0];

for(i=1;i<N;i++)

if(a[i]<=minV)minV=a[i];

while(V>=minV)

{

maxc=0;

for(j=0;j<N;j++)

if(a[j]<=V&&c[j]>=maxc){maxc=c[j];t=j;}

value=b[t]+value;

V=V-a[t];



}

printf("%d",value);

return 0;

}

CSDN App 扫码分享
分享
评论
5
打赏
  • 复制链接
  • 举报
下一条:
Gradle的学习成本高,先把环境搭建好,复习一遍Maven的概念,再完整的学习Gradle
立即登录