讨论 / DFS暴力解
1810113105 2019-08-15 04:26:56
点我顶贴 收藏 删除
#include<bits/stdc++.h>

#define N 22

#define inf 0x3f3f3f3f

using namespace std;

int res=-inf;

int m,n;

int arr[N];

void dfs(int x,int sum){//位置,此时卡路里

if(x>n)return ;//到最后一桶返回

if(sum>res&&sum<m)//比此时的最大值大且小于40更新res

res=sum;

dfs(x+1,sum);//不吃

dfs(x+1,sum+arr[x+1]);//吃

}

int main()

{

cin>>m>>n;

for(int i=1;i<=n;i++)

cin>>arr[i];

dfs(0,0);//从0开始,因为第一个可吃可不吃

cout<<res<<endl;

}

#1 1810113105@2019-08-15 04:27:12
回复 删除
666,太强了
#2 木山@2019-08-18 04:34:25
回复 删除
额……(汗)

查看更多回复
提交回复