请求添加标签
查看原帖
请求添加标签
1381257
zhengyi0402楼主2024/12/9 16:29

我建议添加图论标签,你们看:

#include<bits/stdc++.h>
#define int long long
#define inf 0x3f3f3f3f3f3f3f3fll
using namespace std;
vector<int> v[22];
int a[22],b[22][22];
bool vis[22];
int ans;
vector<int> p;
vector<int> p2;
void dfs(int x,int sum){
	if(v[x].size()==0){
		
		if(ans<sum){
			ans=sum;
			p2.clear();
			for(int i = 0;i < p.size();++i){
				p2.push_back(p[i]);
			}
		}return ;
	}
	for(int i = 0;i < v[x].size();++i){
		p.push_back(v[x][i]);
		vis[v[x][i]]=1;
		dfs(v[x][i],sum+a[v[x][i]]);
		p.pop_back();
		vis[v[x][i]]=0;
	}
}

signed main(){
	ios_base::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	int n;
	cin>>n;
	for(int i = 1;i <= n;i++)cin>>a[i];
	for(int i = 1;i <= n-1;i++){
		for(int j = i+1;j <= n;j++){
			cin>>b[i][j];
			if(b[i][j]&&i!=j)v[i].push_back(j);
		}
	}
	int mx = -inf;
	for(int i = 1;i <= n;i++){
	    p.clear();
	    p.push_back(i);
		dfs(i,a[i]);
		mx=max(mx,ans);
	}
	for(int j = 0;j < p2.size();j++){
		cout<<p2[j]<<' ';
	}
	cout<<endl<<mx;
	return 0;
	//十年OI一场空,define int 见祖宗。
	//十年OI一场空,不开long long见祖宗。
}
2024/12/9 16:29
加载中...