zoukankan      html  css  js  c++  java
  • 背包again

    Gy最近学习了01背包问题,无聊的他又想到了一个新的问题,给定n个物品的价值,和01背包一样,每个物品只能选1次或0次,求最小不能被得到的价值。

    输入

    第一行一个正整数T(T <= 100),表示有T组数据。

    每组数据输入格式如下:

    第一行为一个正整数N(N<=100),表示物品个数。

    第二行N个正整数,表示每个物品的价值vi(1<=vi<=1000000)

    输出

    共输出T行,即每组数据相应答案。

    样例输入

    2
    3
    2 4 8
    4
    1 2 4 8
    

    样例输出

    1
    16
    
    
    
    
    
    
    #include<stdio.h>
    #include<stdlib.h>
    #define N 110
    int a[N];
    int cmp(const void *a,const void *b) {
    return *(int *)a-*(int *)b;
    }
    int main() {
    	int t,n,m,i;
        scanf("%d",&t);
    	while(t--) {
    	scanf("%d",&n);
    	for(i=0;i<n;i++)
    		scanf("%d",&a[i]);
    	qsort(a,n,sizeof(a[0]),cmp);
    	m=0;
    	for(i=0;i<n;i++){
    	if(a[i]-m>1)
    		break;
    	m=m+a[i];
    	}
    	printf("%d
    ",m+1);
    	}
    return 0;
    }
    
  • 相关阅读:
    Java自学第十天
    Java自学第九天
    Java自学第八天
    Java自学第七天
    Java自学第六天
    Java自学第五天
    Java自学第四天
    Java自学第三天
    Oracle11g RAC单节点重启
    PostgreSQL 日志处理
  • 原文地址:https://www.cnblogs.com/thefirstfeeling/p/4410809.html
Copyright © 2011-2022 走看看