3ms!只差3ms!!!
  • 板块P1120 小木棍
  • 楼主houwz351
  • 当前回复10
  • 已保存回复10
  • 发布时间2023/2/18 21:51
  • 上次更新2023/10/24 00:24:59
查看原帖
3ms!只差3ms!!!
807266
houwz351楼主2023/2/18 21:51

RT,最后一个点超了3ms(悲) 记录

#include <bits/stdc++.h>
using namespace std;
int n,a[100],ans,sum,maxn,num;
bool v[100];
bool cmp(int x,int y){
	return x>y;
}
inline bool dfs(int x,int y,int last){
    int fail=0;
	if(y == ans) return dfs(x+1,0,0);    
    if(x-1 == num) return 1;
	for(int i=last;i<n;i++){
		if((!v[i]) && (y+a[i]<=ans) && (a[i]!=fail)){
			v[i]=1;
			if(dfs(x,y+a[i],i+1)) return 1;
			v[i]=0;
			fail=a[i];
			if(y==0 || y+a[i]==ans) return 0;
		}
	}
	return 0;
}
int main(){
	ios::sync_with_stdio(false);
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>a[i];
		sum+=a[i];
	}
	sort(a,a+n,cmp);
	maxn=a[0];
	for(ans=maxn;ans<=sum;ans++){
		if(sum%ans != 0) continue;
		num=sum/ans;
		if(dfs(1,0,0)){
			cout<<ans<<endl;
			return 0;
		}
	}
	return 0;
}

求大佬看看问题出在哪QAQ

2023/2/18 21:51
加载中...