比赛 20110414 评测结果 AATTTTTTTTTWTTT
题目名称 奶牛的跳格子游戏 最终得分 13
用户昵称 magic 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2011-04-14 09:21:26
显示代码纯文本
#include<iostream>
#include<fstream>
#include<cstdio>
#define maxnode 500002
using namespace std;
    int hop[maxnode];
	bool flag[maxnode];
	int m,n,k,i,a;
	long long ans,maxer;
void dfs(int p);
void dfs(int p)
{
	int w;
	if (p==2*n)
	{
		if (maxer>ans)
		{
			ans=maxer;
		}
	}
	for (w=1;w<=k;w++)
	{
		if (p+w<=n)
		{
			maxer+=hop[p+w];
			flag[p+w]=1;
			flag[2*n-p-w]=1;
			dfs(p+w);
			maxer-=hop[p+w];
			flag[2*n-p-w]=0;
			flag[p+w]=0;
		}
		else 
		{
		   if ((flag[p+w-1])&&(!flag[p+w]))
		   {
			 maxer+=hop[p+w];
			 dfs(p+w);
			 maxer-=hop[p+w];
		   }
	     }
	}
	

}
int main()
{
	freopen("hop.in","r",stdin);
	freopen("hop.out","w",stdout);
	scanf("%d%d",&n,&k);
	memset(hop,0,sizeof(hop));
	memset(flag,0,sizeof(flag));
	for (i=1;i<=n;i++)
	{
		scanf("%d",&a);
		hop[i]=a;
		hop[n*2-i]=a;
	}
	dfs(0);
	printf("%d",ans);
return 0;	
}