CodeVS 1102 采药 题解

来源:互联网 发布:淘宝客优惠券建站 编辑:程序博客网 时间:2024/06/07 13:50

恩……最简单的01背包问题

时间复杂度O(T*M)

空间复杂度O(T)

#include <cstdio>using namespace std;int T, M, t, v;int f[1000+2];int main() {scanf("%d %d", &T, &M);for(int i = 1; i<=M; ++i){scanf("%d %d", &t, &v);for(int j = T; j>=1; --j){if(j-t<0) f[j] = f[j];else f[j] = ((f[j]>f[j-t]+v)?f[j]:(f[j-t]+v));}}printf("%d\n", f[T]);    return 0;}