[NOIP2009]开心的金明

解题报告

题目参见COGS洛谷
话说为什么要刷这么水的01背包啊。。。//还不是为刷洛谷试炼场提高组做铺垫
在这里奉劝大家珍爱生命,远离水题。
这么水的题就不加注释了。

#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
struct node
{
	int v, p, t;
}fa[30];
int n, m;
int a[30][100005];
int main()
{
	//freopen("happy.in","r",stdin);
	//freopen("happy.out","w",stdout);
	cin>>n>>m;
	for(int i=1;i<=m;i++)
	{
		scanf("%d%d",&fa[i].p,&fa[i].v);
		fa[i].t=fa[i].v*fa[i].p;
	}
	for(int i=1;i<=m;i++)
	{
		for(int j=1;j<=n;j++)
		{
			if(j>=fa[i].p)
			{
				a[i][j]=max(a[i-1][j],a[i-1][j-fa[i].p]+fa[i].t);
			}
			else
				a[i][j]=a[i-1][j];
		}
	}
	cout<<a[m][n]<<"\n";
	return 0;
}

 

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理