×°ÏäÎÊÌ⶯̬¹æ»® -µçÄÔ×ÊÁÏ

µçÄÔ×ÊÁÏ Ê±¼ä£º2019-01-01 ÎÒҪͶ¸å
¡¾www.unjs.com - µçÄÔ×ÊÁÏ¡¿

    ÎÊÌâÃèÊö ¡¡¡¡ÓÐÒ»¸öÏä×ÓÈÝÁ¿ÎªV£¨ÕýÕûÊý£¬0£¼£½V£¼£½20000£©£¬Í¬Ê±ÓÐn¸öÎïÆ·£¨0£¼n£¼£½30£©£¬Ã¿¸öÎïÆ·ÓÐÒ»¸öÌå»ý£¨ÕýÕûÊý£©£¬

×°ÏäÎÊÌ⶯̬¹æ»®

¡£

    ÒªÇón¸öÎïÆ·ÖУ¬ÈÎÈ¡Èô¸É¸ö×°ÈëÏäÄÚ£¬Ê¹Ïä×ÓµÄÊ£Óà¿Õ¼äΪ×îС¡£ ÊäÈë¸ñʽ ¡¡¡¡µÚÒ»ÐÐΪһ¸öÕûÊý£¬±íʾÏä×ÓÈÝÁ¿£»

    µÚ¶þÐÐΪһ¸öÕûÊý£¬±íʾÓÐn¸öÎïÆ·£»

    ½ÓÏÂÀ´nÐУ¬Ã¿ÐÐÒ»¸öÕûÊý±íʾÕân¸öÎïÆ·µÄ¸÷×ÔÌå»ý¡£ Êä³ö¸ñʽ ¡¡¡¡Ò»¸öÕûÊý£¬±íʾÏä×ÓÊ£Óà¿Õ¼ä¡£ ÑùÀýÊäÈë 24

    6

    8

    3

    12

    7

    9

    7 ÑùÀýÊä³ö 0 ÕâÌâ¶ÁÍêÖ®ºó¶à˼¿¼Ë¼¿¼£¬ Æäʵ¾ÍÄÜ·¢ÏÖ¾ÍÊÇ0-1±³°üÎÊÌâ ÿ¸öÎïÆ·µÄÌå»ý¾ÍÊÇ»¨·ÑͬʱҲÊǼÛÖµ£¬ Ò²¾ÍÊÇ˵ÕâÌâ¿ÉÒÔת»¯ÎªÔÚ×ÜÌå»ýΪwÏ£¬¿ÉÒԵõ½×î´óµÄ¼ÛÖµ ×îºóÓÃ×ÜÌå»ý¼õÈ¥×î´óµÄ¼ÛÖµ¾ÍÊÇÊ£ÏÂ×îÉٵĿռä ×´Ì¬×ªÒÆ·½³Ìd[j] = max(d[j], d[j - a[i]] + a[i]);

#include<stdio.h>#include<string.h>#include using namespace std;int n;int d[20005];int a[35];int main(){	int w;	scanf("%d%d", &w, &n);	int i, j;	for (i = 0; i < n; i++){		scanf("%d", &a[i]);	}	memset(d, 0, sizeof(d));	for (i = 0; i < n; i++){		for (j = w; j >= a[i]; j--)			d[j] = max(d[j], d[j - a[i]] + a[i]);				}	printf("%d\n", w - d[w]);	return 0;}</string.h></stdio.h>

×îÐÂÎÄÕÂ