12分求助
  • 板块P2128 赤壁之战
  • 楼主Ch35
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/7/8 10:33
  • 上次更新2023/10/27 21:31:17
查看原帖
12分求助
672360
Ch35楼主2022/7/8 10:33

12分,怎么回事?

#include<bits/stdc++.h>
using namespace std;
int n,m,a[1000],b[1000][1000],c[1000],u,v,maxx,cnt;
queue<int>q;
void dfs(int z){
    maxx=max(maxx,cnt);
    for(int i=1;i<=n;i++){
        if(b[i][z]==1&&c[i]==0){
            c[i]=1;
            cnt+=a[i];
            dfs(i);
            c[i]=0;
            cnt-=a[i];
        }
    }
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++)cin>>a[i];
	for(int i=1;i<=m;i++){
	    cin>>u>>v;
	    b[u][v]=1;
	    b[v][u]=1;
	}
	for(int i=1;i<=n;i++){
	    c[i]=1;
	    cnt=a[i];
	    dfs(i);
	    for(int i=1;i<=n;i++)c[i]=0;
    }
	cout<<maxx;     
	return 0;
}
2022/7/8 10:33
加载中...