记录编号 83235 评测结果 AAAAAAAAAA
题目名称 [NOIP 2010]乌龟棋 最终得分 100
用户昵称 GravatarCirno 是否通过 通过
代码语言 C++ 运行时间 0.070 s
提交时间 2013-12-01 12:06:17 内存使用 24.16 MiB
显示代码纯文本
#include<cstdio>
#include<iostream>
using namespace std;
int n,m,pan[400],sum[5];
int f[50][50][50][50];
int main()
{
    freopen("tortoise.in","r",stdin);
    freopen("tortoise.out","w",stdout);
    cin>>n>>m;
    int i,j,k,t,a;
    for(i=1;i<=n;i++)
		cin>>pan[i];
    for(i=1;i<=m;i++)
		{cin>>a,sum[a]++;}
    f[0][0][0][0]=pan[1];
    for(i=0;i<=sum[1];i++)
       for(j=0;j<=sum[2];j++)
           for(k=0;k<=sum[3];k++)
                for(t=0;t<=sum[4];t++)
                {
                    if(i>=1)
						if(f[i][j][k][t]<f[i-1][j][k][t]+pan[1+i*1+j*2+k*3+t*4])
							f[i][j][k][t]=f[i-1][j][k][t]+pan[1+i*1+j*2+k*3+t*4];
                    if(j>=1)
                        if(f[i][j][k][t]<f[i][j-1][k][t]+pan[1+i*1+j*2+k*3+t*4])
                            f[i][j][k][t]=f[i][j-1][k][t]+pan[1+i*1+j*2+k*3+t*4];
                    if(k>=1)
                        if(f[i][j][k][t]<f[i][j][k-1][t]+pan[1+i*1+j*2+k*3+t*4])
							f[i][j][k][t]=f[i][j][k-1][t]+pan[1+i*1+j*2+k*3+t*4];
                    if(t>=1)
                        if(f[i][j][k][t]<f[i][j][k][t-1]+pan[1+i*1+j*2+k*3+t*4])
							f[i][j][k][t]=f[i][j][k][t-1]+pan[1+i*1+j*2+k*3+t*4];
                }
    cout<<f[sum[1]][sum[2]][sum[3]][sum[4]]<<endl;
    return 0;
}