萌新求教:怎么就RE了捏?
查看原帖
萌新求教:怎么就RE了捏?
118567
雨辰yoha楼主2022/10/30 17:33
#include<bits/stdc++.h>
using namespace std;
int n,m,k; 
int v[3000],ans,book[3000];
vector<int> ed[10005];
void dfs(int step,int x,int score){
    cout<<"";
	if(step==5){
		bool flag=false;
		for(int i=0;i<ed[x].size();i++){
			//cout<<ed[x][i]<<" ";
			if(ed[x][i]==1){
				flag=true;
				break;
			}
		}
		//cout<<"flag is"<<flag; 
	 	//cout<<endl;

        
		if(flag){
			ans=max(ans,score);
		}
		return ;
	}
	for(int i=0;i<ed[x].size();i++){
		if(book[i]||ed[x][i]==1) continue;
		book[ed[x][i]]=true;
		dfs(step+1,ed[x][i],score+v[ed[x][i]]);
		book[ed[x][i]]=false;
	}
	return ;
}
int main(){
	//freopen("8817.in","r",stdin);
	//freopen(" .out","w",stdout);
	cin>>n>>m>>k;
	for(int i=2;i<=n;i++){
		cin>>v[i];
	}
	for(int i=1;i<=m;i++){
		int a,b;
		cin>>a>>b;
		ed[a].push_back(b);
		ed[b].push_back(a);
	}
//	for(int i=1;i<=n;i++){
//		printf("%d点连接着",i);
//		for(int j=0;j<ed[i].size();j++){
//			cout<<ed[i][j]<<" ";
//		}
//		cout<<endl;
//	}
	dfs(1,1,0);
	cout<<ans;
	return 0;
}

rt啊,本来想打个无脑dfs试一试的,怎么就寄了呢

2022/10/30 17:33
加载中...