蓝桥杯算法提高VIP-种树

#include<iostream>

using namespace std;

int a[2200];//记录价值

int site[2200];//记录位置是否栽树

int n,m,maxx;

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){//x当前种树位置,s剩余种树数量,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>maxx)maxx=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<<maxx<<endl;

}else{

cout<<"Error!"<<endl;

}

return 0;

}

相关推荐
cui_ruicheng19 小时前
C++关联容器进阶:unordered_map / set与详解
开发语言·c++
恒者走天下19 小时前
qt就业岗位都有哪些,具体分布在什么类型的公司
c++
cicada1519 小时前
MFC中的DoDataExchange表示什么功能?
c++·mfc
j_xxx404_19 小时前
常见位运算基础知识,技巧总结以及力扣实战
数据结构·c++·算法·leetcode
sycmancia19 小时前
C++——C++异常处理
开发语言·c++
RuiBo_Qiu19 小时前
【LLM进阶-后训练&部署】1. 大语言模型全参数微调:从前向推理到反向传播的底层原理解析
人工智能·算法·语言模型·自然语言处理·ai-native
HLC++19 小时前
C++中的类和对象
开发语言·c++
橙子也要努力变强19 小时前
Linux I/O 缓冲区、inode、软硬链接与磁盘结构全解析
linux·c++·操作系统
子有内涵19 小时前
【Linux】程序地址空间(是什么?为什么?)
linux·运维·算法
setmoon21419 小时前
C++与量子计算模拟
开发语言·c++·算法