蓝桥杯算法提高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;

}

相关推荐
吃好睡好便好6 小时前
在Matlab中绘制横直方图
开发语言·学习·算法·matlab
仰泳之鹅6 小时前
【C语言】自定义数据类型2——联合体与枚举
c语言·开发语言·算法
于小猿Sup7 小时前
VMware在Ubuntu22.04驱动Livox Mid360s
linux·c++·嵌入式硬件·自动驾驶
x_yeyue8 小时前
三角形数
笔记·算法·数论·组合数学
Mr. zhihao9 小时前
深入解析redis基本数据结构
数据结构·数据库·redis
念何架构之路10 小时前
Go语言加密算法
数据结构·算法·哈希算法
AI科技星10 小时前
《数学公理体系·第三部·数术几何》(2026 年版)
c语言·开发语言·线性代数·算法·矩阵·量子计算·agi
小小编程路10 小时前
C++ 多线程与并发
java·jvm·c++
失去的青春---夕阳下的奔跑10 小时前
560. 和为 K 的子数组
数据结构·算法·leetcode
黎阳之光10 小时前
黎阳之光:以视频孪生重构智慧医院信息化,打造高标项目核心竞争力
大数据·人工智能·物联网·算法·数字孪生