NYOJ 106(背包)

简介: //此为背包问题 ,289为0-1背包 #include #include typedef struct data { int w; int v; }data; int cmp(const void *a,const void *b) { ...
 //此为背包问题 ,289为0-1背包 
#include<stdio.h>
#include<stdlib.h> 
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<s;i++)
	     scanf("%d%d",&a[i].v,&a[i].w);	
	 qsort(a,s,sizeof(data),cmp);
	 for(int i=s-1;m>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;  		
} 




        

  

目录
相关文章
|
7月前
01背包问题的理解
01背包问题的理解
|
2月前
|
算法 决策智能
初谈背包问题——01背包
初谈背包问题——01背包
|
7月前
01背包和完全背包
01背包和完全背包
|
7月前
|
算法 容器
01背包问题
01背包问题
64 1
|
算法
动归背包2
动归背包2
64 0
背包问题——01背包|完全背包 2
背包问题——01背包|完全背包
198 0
|
算法 决策智能
背包问题——01背包|完全背包 1
背包问题——01背包|完全背包
322 0
|
机器学习/深度学习
|
机器学习/深度学习 存储 算法
【背包问题】01背包问题
给定n种物品(每种物品只有一件)和一个背包:物品i的重量是wi,其价值 为vi,背包的容量为C。问应如何选择装入背包的物品,使得装入背包中物 品的总价值最大? 对于每种物品,只有两种选择:装(1)或者不装(0),不允许装物品的一部分
249 0
【背包问题】01背包问题