码迷,mamicode.com
首页 > 其他好文 > 详细

01背包

时间:2017-05-22 15:24:21      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:max   white   scan   main   font   post   article   name   --   

输入

每一个測试点(输入文件)有且仅有一组測试数据。

每组測试数据的第一行为两个正整数N和M,表示奖品的个数,以及小Ho手中的奖券数。

接下来的n行描写叙述每一行描写叙述一个奖品。当中第i行为两个整数need(i)和value(i),意义如前文所述。

測试数据保证

对于100%的数据,N的值不超过500,M的值不超过10^5

对于100%的数据,need(i)不超过2*10^5, value(i)不超过10^3

输出

对于每组測试数据,输出一个整数Ans,表示小Ho能够获得的总喜好值。

例子输入
5 1000
144 990
487 436
210 673
567 58
1056 897
例子输出
2099

#include <stdio.h>

#define maxn 100005

int dp[maxn];

int max(int a, int b) {
	return a > b ?

a : b; } int main() { int N, M, i, w, v, j; scanf("%d%d", &N, &M); for(i = 0; i < N; ++i) { scanf("%d%d", &w, &v); for(j = M; j >= w; --j) dp[j] = max(dp[j], dp[j-w] + v); } printf("%d\n", dp[M]); return 0; }



01背包

标签:max   white   scan   main   font   post   article   name   --   

原文地址:http://www.cnblogs.com/tlnshuju/p/6888915.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!