| 比赛 | 叫图论的DP题 | 评测结果 | AAAAAAAAAA | 
    | 题目名称 | 采药 | 最终得分 | 100 | 
    | 用户昵称 | @@@ | 运行时间 | 0.014 s | 
    | 代码语言 | C++ | 内存使用 | 4.13 MiB | 
    | 提交时间 | 2017-08-30 18:52:48 | 
显示代码纯文本
#include <fstream>
using namespace std;
ifstream cin("medic.in");
ofstream cout("medic.out");
int mn[1001][1001],w[101],v[101];
int f(int i,int j)
{
	if(j==0||i==0)
	{
		mn[i][j]=0;
		return 0;
	}
	if(j<w[i])
	{
		mn[i][j]=mn[i-1][j];
	    return 0;
	}
	if(j>=w[i])
		mn[i][j]=max(v[i]+mn[i-1][j-w[i]],mn[i-1][j]);
		return 0;
}
int main()
{
	int t,m,i,j;
	cin>>t>>m;
	for(i=1;i<=m;i++)
		cin>>w[i]>>v[i];
	for(i=0;i<=m;i++)
		for(j=0;j<=t;j++)
			f(i,j);
		cout<<mn[m][t]<<endl;
	return 0;
	cin.close();cout.close();
}