0分全RE,求调
  • 板块P1120 小木棍
  • 楼主Yxy7952
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/6/22 21:03
  • 上次更新2024/6/23 08:06:38
查看原帖
0分全RE,求调
936717
Yxy7952楼主2024/6/22 21:03
#include<bits/stdc++.h>
using namespace std;
int n,m,cnt,a[1005],f[1005],sum=0,len;
bool cmp(int l,int r){
	return l>=r;
}
bool dfs(int x,int l,int last){
	if(x>cnt){
		return true;
	}
	if(l==len){
		return dfs(x+1,0,1);
	}
	int flag=0;
	for(int i=last;i<=m;i++){
        if(!f[i]&&l+a[i]<=l&&flag!=a[i]){
            f[i]=1;
            if(dfs(x,l+a[i],i+1)){
            	return true;
			}
			flag=a[i];
            f[i]=0;
            if(l==0||l+a[i]==len){
            	return false;
			}
        }
    }
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		int x;
		cin>>x;
		if(x<=50){
			m++;
			a[m]=x;
			sum+=x;
		}
	}
	sort(a+1,a+n+1,cmp);
	for(len=a[1];len<=sum;len++){
		if(sum%len!=0) continue;
		cnt=sum/len;
		memset(f,0,sizeof(f));
		if(dfs(1,0,1)){
			break;
		}
	}
	cout<<len;
	return 0;
}
2024/6/22 21:03
加载中...