NYOJ 49 開心的小明

題目鏈接:http://acm.nyist.net/JudgeOnline/problem.php?pid=49

其實還是簡單的0,1揹包,趁熱打鐵,只當作練手了,沒啥好說的了,不過以前開數組開小了一次,這次還是開小了,o(︶︿︶)o 唉,不長記性。。。。。水過。

代碼:

#include<stdio.h>
#include<string.h>
struct bb
{
	int prize;//**價格**//
	int imp;//**重要度**//
	int sum;//**總和**//
}w[100001];
int main()
{
	int ncases,money,n,i,j,a[100001];
	scanf("%d",&ncases);
	while(ncases--)
	{
		memset(w,0,sizeof(w));
		memset(a,0,sizeof(a));
		scanf("%d %d",&money,&n);
		for(i=1;i<=n;i++)
		{
			scanf("%d %d",&w[i].prize,&w[i].imp);
			w[i].sum=w[i].prize*w[i].imp;
		}
		for(i=1;i<=n;i++)
		{
			for(j=money;j>=w[i].prize;j--)
			{
				a[j]=a[j]>(a[j-w[i].prize]+w[i].sum)?a[j]:(a[j-w[i].prize]+w[i].sum);
			}
		}
		printf("%d\n",a[money]);
	}
	return 0;
}                



發佈了103 篇原創文章 · 獲贊 748 · 訪問量 22萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章