为什么不能把f数组初始化在主函数
查看原帖
为什么不能把f数组初始化在主函数
656125
Grace2022楼主2025/1/21 08:10

如题,请看错误代码(只A第三个点)

#include<bits/stdc++.h>
using namespace std;
vector<int> e[1505];
int f[1505][15],vis[1505];
void dfs(int x,int pre){
	
	for(auto i:e[x]){
		if(i==pre) continue;
		dfs(i,x);
		f[x][1]+=min(f[i][0],f[i][1]);
		f[x][0]+=f[i][1];
	}
}
int main(){
	int n;
	cin>>n;
	for(int i=1;i<=n;i++){
		int u,k;
		cin>>u>>k;
		f[i][1]=1;//应放在dfs函数第一行
		f[i][0]=0;	
		for(int j=1;j<=k;j++){
			int v;
			cin>>v;
			e[u].push_back(v);
			e[v].push_back(u);
		}
	}
	dfs(0,-1);
	cout<<min(f[0][0],f[0][1]);
	return 0;
}
2025/1/21 08:10
加载中...