标签:
给定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