//usaco3-1-2 总分
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int dp[101000],w[101000],c[101000];
int n,m,v;
int main()
{
scanf("%d%d",&v,&n);
for (int i=1;i<=n;i++) scanf("%d%d",&c[i],&w[i]);
for (int i=1;i<=v;i++)
for (int j=1;j<=n;j++)
if (i-w[j]>=0)dp[i]=max(dp[i-w[j]]+c[j],dp[i]);
printf("%d\n",dp[v]);
return 0;
}
【USACO3-1-2】总分 dp
最新推荐文章于 2019-11-05 16:14:44 发布