随笔 - 0  文章 - 5  trackbacks - 0
<2025年6月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

常用链接

留言簿(2)

文章分类

文章档案

教育

信息学奥赛

有用网站

在线OJ

专题测试

租房信息

搜索

  •  

最新评论


#include<fstream>
#include
<algorithm>
using namespace std;
const int N=45;
int f[N][N][N][N]={0},score[400],num[5]={0};
int main()
{
    
int n,m,i,x;
    ifstream cin(
"tortoise.in");
    ofstream cout(
"tortoise.out");    
    cin
>>n>>m;
    
for (i=0;i<n;i++) cin>>score[i];
    
for (i=1;i<=m;i++)
    {
        cin
>>x;
        num[x]
++;
    }
    f[
0][0][0][0]=score[0];
    
for (int a=0;a<=num[1];a++)
        
for (int b=0;b<=num[2];b++)
            
for (int c=0;c<=num[3];c++)
                
for (int d=0;d<=num[4];d++)
                {                    
                    i
=a+b*2+c*3+d*4;
                    
if (a>0) f[a][b][c][d]=max(f[a-1][b][c][d]+score[i],f[a][b][c][d]); 
                    
if (b>0) f[a][b][c][d]=max(f[a][b-1][c][d]+score[i],f[a][b][c][d]); 
                    
if (c>0) f[a][b][c][d]=max(f[a][b][c-1][d]+score[i],f[a][b][c][d]); 
                    
if (d>0) f[a][b][c][d]=max(f[a][b][c][d-1]+score[i],f[a][b][c][d]); 
                }
    cout
<<f[num[1]][num[2]][num[3]][num[4]]<<endl;;
    
return 0;
}
posted on 2012-06-20 11:22 龙在江湖 阅读(285) 评论(0)  编辑 收藏 引用 所属分类: 竞赛题解_NOIP