蒟蒻求救
查看原帖
蒟蒻求救
661144
Tidyhitler楼主2022/1/9 12:36
#include<bits/stdc++.h>
using namespace std;
int t,a[30],m,sum;
int dfs(int i,int e,int f,int g,int h){
	if(i==m+1&&e==sum&&f==sum&&h==sum) return 1;
	//剪枝
	if(e>sum||f>sum||g>sum||h>sum) return 0;
	if(dfs(i+1,e+a[i],f,g,h)==1) return 1; 
	if(dfs(i+1,e,f+a[i],g,h)==1) return 1;
	if(dfs(i+1,e,f,g+a[i],h)==1) return 1;
	if(dfs(i+1,e+a[i],f,g,h)==1) return 1;
	if(dfs(i+1,e,f,g,h+a[i])==1) return 1;
	return 0;
}
int main(){
	cin>>t;
	for(int i=1;i<=t;i++){
		sum=0;
		cin>>m;
		for(int j=1;j<=m;j++){
			cin>>a[j];
			sum+=a[i];
		}
		if(sum%4!=0){
			cout<<"no"<<endl;
			continue;
		}
		sum=sum/4;
	}	
	int flag=dfs(1,0,0,0,0);
	if(flag==1) cout<<"yes"<<endl;
	else cout<<"no"<<endl;
	return 0;
}

求大佬指点

2022/1/9 12:36
加载中...