回溯法暴力枚举 #include<iostream> using namespace std; const int maxn=1000000; int v[maxn],a[maxn],w[maxn]; int m,n; int counter=0; int result=0; int max(int g,int h){     return g>h?g:h; } int min(int g,int h){     return g<h?g:h; } int tempmax(int*t,int xx,int yy){ int maxx=0; for(int p=xx;p<yy;p++)maxx+=t[p]; return maxx; } int tempmin(int*t,int xx,int yy){ int maxx=100000; for(int p=xx;p<yy;p++)if(maxx>t[p])maxx=t[p]; return maxx; } void minre(int* b,int cur,int local){          if(cur==m){v[counter++]=result; result=0;return;} else for(int j=0;j<n;j++){     if(local<j){         if(cur==m-1){result=max(result,tempmax(b,local,n));minre(b,cur+1,j);}         else{          result=max(result,tempmax(b,local,j));          minre(b,cur+1,j);         }     } } } int main(){ scanf("%d%d",&m,&n); for(int i=0;i<n;i++)scanf("%d",&a[i]); minre(a,0,0); int re=tempmin(v,0,counter); printf("%d\n",re);     return 0; }
点赞 评论

相关推荐

2025-12-17 17:15
华东师范大学 运营
点赞 评论 收藏
分享
2025-12-18 11:59
广州南方学院 C++
牛客78682892...:直接点还好,总比要了简历也不回的强
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务