简单的背包问题

来源:互联网 发布:mtv分享精灵软件 编辑:程序博客网 时间:2024/05/19 22:50
#include<algorithm>#include<iostream>#include<cstdio>#include<cstdlib>using namespace std;typedef struct {        int v;        int w;        }data;  data a[10];  int compare(const data &a, const data &b)  {      return a.v > b.v;  }  int n, m;int bake(int n, int m){    int i,sum=0;    int *b = new int[10];    for(i=0; i<n; i++)    scanf("%d %d",&a[i].v, &a[i].w);    sort(a,a+n,compare);   // for(i=0; i<n; i++) b[i] = 0;    for(i=0; i<n; i++)    {       if(a[i].w>m)break;          m -= a[i].w;         sum+=a[i].w*a[i].v;     }    if(i<n) sum+=m*a[i].v;    printf("%d\n",sum);}int main(){    int N;    scanf("%d",&N);    while(N--)    {       scanf("%d %d",&n,&m);        bake(n,m);    }      system("pause");   return 0;}

点击打开链接
	
				
		
原创粉丝点击