//此为背包问题 ,289为0-1背包 #include#include typedef struct data { int w; int v; }data; int cmp(const void *a,const void *b){ return ((data*)a)->v-((data*)b)->v; }//不加括号不行啊 int main(){ data a[10]; int T,v,w,sum,s,m; scanf("%d",&T); while(T--) { sum=0; scanf("%d%d",&s,&m); for(int i=0;i 0;i--) //发现i也要加上int,否则\调试\未命名1.cpp name lookup of `i' changed for new ISO `for' scoping if(a[i].w<=m) { sum+=a[i].v*a[i].w; m-=a[i].w; } else { sum+=m*a[i].v; m=0; } printf("%d\n",sum); } system("pause"); return 0; }