您的位置:首页 > 其它

Vijos P1775 乌龟棋 题解

2014-09-28 22:41 253 查看
4个参数,看似唬人,其实没什么

#include <iostream>
#include <math.h>
using namespace std;
int score[41][41][41][41],chess[400];
int N,M,cd[5]={0};
int main()
{
cin>>N>>M;
int i,x;
for (i=1;i<=N;i++) cin>>chess[i];
for (i=1;i<=M;i++)
{
cin>>x;
cd[x]++;
}
int a,b,c,d,s;
for (a=0;a<=cd[1];a++)
for (b=0;b<=cd[2];b++)
for (c=0;c<=cd[3];c++)
for (d=0;d<=cd[4];d++)
{
s=chess[1+a+2*b+3*c+4*d];
if (a>0) score[a][b][c][d]=max(score[a][b][c][d],score[a-1][b][c][d]);
if (b>0) score[a][b][c][d]=max(score[a][b][c][d],score[a][b-1][c][d]);
if (c>0) score[a][b][c][d]=max(score[a][b][c][d],score[a][b][c-1][d]);
if (d>0) score[a][b][c][d]=max(score[a][b][c][d],score[a][b][c][d-1]);
score[a][b][c][d]+=s;
}
cout<<score[cd[1]][cd[2]][cd[3]][cd[4]]<<endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  vijos dp