01背包,死记硬背(我是真的蠢)

#include "bits/stdc++.h"
using namespace std;


int main()
{
    int n,t,cost[100000],value[100000],f[100000];
    cin >> n >> t;
    for(int i=1;i <= n;i++)
        cin >> cost[i] >> value[i];

    for(int i=0;i <=n;i++)
        f[i] = 0;

    for(int i=1;i <=n;i++)
    {
        for(int j=t;j>=cost[i];j--)
        {
            f[j] = max(f[j],f[j-cost[i]]+value[i]);
        }
    }
    cout << f[t] <<endl;


    return 0;
}

贝贝

原文地址:https://www.cnblogs.com/cunyusup/p/7882064.html