这个dfs有问题吗
查看原帖
这个dfs有问题吗
1114327
wantto123楼主2024/10/27 19:33
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int t,a[N],c[N],ans,n;
int deal(){
	int res=0;
	for(int i=1;i<=n;i++)
		for(int j=i;j>=1;j--) 
			if(i!=j&&a[j]==a[i]&&c[i]==c[j]) res+=a[i];
	return res;
}
void dfs(int now){
	if(now==n) {
		ans=max(ans,deal());
		return ;
	}
	 c[now+1]=1;
	 dfs(now+1);
	 c[now+1]=2;
	 dfs(now+1);
}
int main(){
	cin>>t;
	while(t--){
		ans=0;
		cin>>n;
		for(int i=1;i<=n;i++) cin>>a[i];
		dfs(0);
		cout<<ans<<endl;
		for(int i=1;i<=n;i++){
			a[i]=0;
			c[i]=0;
		}
	}
}
2024/10/27 19:33
加载中...