`
EmmaZhao
  • 浏览: 32281 次
  • 性别: Icon_minigender_2
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

POJ1276

 
阅读更多
#include<iostream>
using namespace std;

int main()
{
	int cash,n,max;
	while(cin>>cash>>n)
	{
		max = 0;
		int m[1001],v[1001];
		for(int i = 0;i<n;i++) cin>>m[i]>>v[i];

		bool dp[100001];
		memset(dp,0,sizeof(dp));
		dp[0] = true;
		for(int i = 0;i<n;i++)
		{
			for(int j = max;j>=0;j--)
			{
				if(dp[j])
				{
					for(int k = 1;k <= m[i];k++)
					{
						int tmp = j+k*v[i];
						if(tmp>cash) break;
						dp[tmp] = true;
						if(tmp>max) max = tmp;
					}
				}
			}
		}
		cout<<max<<endl;
	}
	return 0;
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics