标签:
给定M分钟,N种题目,然后每种题目有一个耗时和分数,每种题目可以选多个,问在M分钟内可以最多得多少分。
最裸的完全背包。
/*
ID: modengd1
PROG: inflate
LANG: C++
*/
#include <iostream>
#include <stdio.h>
#include <memory.h>
int dp[10000];
int T[10000],w[10000];
int N,M;
using namespace std;
int main()
{
    freopen("inflate.in","r",stdin);
    freopen("inflate.out","w",stdout);
    scanf("%d%d",&M,&N);
    memset(dp,0,sizeof(dp));
    for(int i=0;i<N;i++)
    {
        scanf("%d%d",&w[i],&T[i]);
    }
    for(int i=0;i<N;i++)
    {
        for(int j=T[i];j<=M;j++)
        {
            dp[j]=max(dp[j-T[i]]+w[i],dp[j]);
        }
    }
    cout<<dp[M]<<endl;
    return 0;
}
标签:
原文地址:http://www.cnblogs.com/modengdubai/p/4803559.html