简单 dfs TLE 求调 qwq
查看原帖
简单 dfs TLE 求调 qwq
511609
无钩七不改名楼主2023/4/25 22:20

RT.

https://www.luogu.com.cn/record/108930233

代码:

#include<bits/stdc++.h>
using namespace std;

int n,a[70];
bool b[70];

bool dfs(int x,int num,int y,int z){
	//cout<<x<<" "<<num<<" "<<y<<" "<<z<<endl;
	if(x==n)return (y==0);
	for(int i=z;i>=1;i--){
		if(b[i]||a[i]+y>num||(a[i]==a[i+1]&&b[i+1]==0))continue;
		b[i]=1;
		if(a[i]+y==num){
			if(dfs(x+1,num,0,n))return b[i]=0,1;
			return b[i]=0,0;
		}
		if(dfs(x+1,num,a[i]+y,z-1))return b[i]=0,1;
		b[i]=0;
		if(y==0)return 0;
	}
	return 0;
}

int main(){
	//cout<<1<<endl;
	scanf("%d",&n);
	int r=0;
	for(int i(1);i<=n;i++)
		scanf("%d",&a[i]),r+=a[i];
	sort(a+1,a+1+n);
	for(int i=a[n];i<r;i++){
		if(dfs(0,i,0,n))
			return printf("%d",i),0;
	}
	printf("%d",r);
	return 0;
} 

蟹蟹泥 qwq

2023/4/25 22:20
加载中...