记录编号 344998 评测结果 AAAAAAAAAA
题目名称 [NOIP 2010]乌龟棋 最终得分 100
用户昵称 Gravatarhummertime 是否通过 通过
代码语言 C 运行时间 0.327 s
提交时间 2016-11-10 18:15:38 内存使用 9.97 MiB
显示代码纯文本
#include<stdio.h>
#include<string.h>
int max(int aa,int bb)
{
	if(aa>bb)
		return aa;
	else
	    return bb;
}
int n,m,p[41][41][41][41],l[352],x,i,a,b,c,d,q[10]={0};
int main()
{
	freopen("tortoise.in","r",stdin);
	freopen("tortoise.out","w",stdout);
	memset(p,0,sizeof(p));
	scanf("%d %d",&n,&m);
	for(i=0;i<n;i++)
		scanf("%d",&l[i]);//每步的值
	for(i=1;i<=m;i++)
	{
		scanf("%d",&x);//每张牌
		q[x]++;//几类牌
	}
	p[0][0][0][0]=l[0];
	for(a=0;a<=q[1];a++)
		for(b=0;b<=q[2];b++)
			for(c=0;c<=q[3];c++)
				for(d=0;d<=q[4];d++)
				{
					if(a>0)
					p[a][b][c][d]=max(p[a-1][b][c][d]+l[a+b*2+c*3+d*4],p[a][b][c][d]);
					if(b>0)
					p[a][b][c][d]=max(p[a][b-1][c][d]+l[a+b*2+c*3+d*4],p[a][b][c][d]);
					if(c>0)
					p[a][b][c][d]=max(p[a][b][c-1][d]+l[a+b*2+c*3+d*4],p[a][b][c][d]);
					if(d>0)
					p[a][b][c][d]=max(p[a][b][c][d-1]+l[a+b*2+c*3+d*4],p[a][b][c][d]);
					//p[a][b][c][d]+=l[a+b*2+c*3+d*4];
				}
				printf("%d",p[q[1]][q[2]][q[3]][q[4]]);
				return 0;
}