Codevs 1102 采药 01背包模板

来源:互联网 发布:百度推广和优化的区别 编辑:程序博客网 时间:2024/06/07 18:55
#include <cstdio>#include <cstring>#include <queue>#include <cstdlib>#include <iostream>using namespace std;#define MAXN (100+10)#define MAXT (1000+10)int c[MAXN], w[MAXN];int dp[MAXN][MAXT];int main(){    int T, M;    cin >> T >> M;    for(int i = 1; i <= M; i ++)        scanf("%d%d", &c[i], &w[i]);    for(int i = 1; i <= M; i ++)        for(int j = 1; j <= T; j ++)            if(j-c[i] >= 0)                dp[i][j] = max(dp[i-1][j], dp[i-1][j-c[i]]+w[i]);            else dp[i][j] = dp[i-1][j];    cout << dp[M][T] << endl;    return 0;}

#include <cstdio>#include <queue>#include <iostream>#include <cstring>using namespace std;#define MAXN (100+10)#define MAXT (1000+10)int w[MAXN], c[MAXN];int dp[MAXT];#define max(u,v) (u>v?u:v)int main(){    int T, M;    cin >> T >> M;    for(int i = 1; i <= M; i ++)        scanf("%d%d", &c[i], &w[i]);    for(int i = 1; i <= M; i ++)        for(int j = T; j >= 1; j --)            if(j-c[i] >= 0)                dp[j] = max(dp[j], dp[j-c[i]]+w[i]);    cout << dp[T] << endl;    return 0;}
0 0
原创粉丝点击