SK


私信TA

用户名:1973231998

访问量:18555

签 名:

成功只是一时的,失败才是主旋律,笑着面对失败是主要的。

等  级
排  名 262
经  验 5693
参赛次数 0
文章发表 59
年  龄 0
在职情况 学生
学  校 *
专  业

  自我简介:


参考代码:

#include<bits/stdc++.h>
using namespace std;
int a[1001]; //记录价值
int site[1001]; //记录位置是否栽树,1/0
int n, m,maxs; //maxs最大价值
bool cont(int d) //判断当前位置能否栽树(判断前一个位置当前位置和后一个位置是否栽树)。
{
	return (site[d] == 0 && site[(d - 1 + n) % n] == 0 && site[(d + 1) % n] == 0);
}
void dfs(int x,int s,int sum)
{
	site[x] = 1;
	sum += a[x];
	if (s)
	{
		for (int i =x+2; i < n; i++) //从当前位置往后递归栽树
			if (cont(i))
			{
				dfs(i, s - 1,sum);
			} 
	}
	else
	{
		if (sum > maxs) maxs = sum;
	}
	site[x] = 0;
}
int main()
{
	cin >> n >> m;
	for (int i = 0; i < n; i++) cin >> a[i];
	if ((n/2)>=m)
	{
		for (int i = 0; i < n; i++)
		{
			dfs(i, m-1,0);
		}
	 cout << maxs<<endl;
	}
	else cout << "Error!";	
}


 

0.0分

5 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区