求助
  • 板块学术版
  • 楼主WxjzKK
  • 当前回复4
  • 已保存回复4
  • 发布时间2020/7/14 12:40
  • 上次更新2023/11/6 23:09:32
查看原帖
求助
160150
WxjzKK楼主2020/7/14 12:40

一本通1338

双向数组链表搜索错误求助:

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
#include<iomanip>
#include<string>
#include<stack>
#include<queue>
#include<vector>
using namespace std;
bool f[101];
int sum,ans=2147483647;
struct node
{
	int cpeo,lch,rch,fa;
}city[101];
void dfs(int root,int dep)
{
	if (f[root]) return;
	f[root]=true;
	sum+=city[root].cpeo*dep;
	dfs(city[root].lch,dep+1);
	dfs(city[root].rch,dep+1);
	dfs(city[root].fa,dep+1);
}
int main()
{
	int n,people;
	cin>>n;
	for (int i=1;i<=n;++i)
	{
		cin>>city[i].cpeo>>city[i].lch>>city[i].rch;
		city[city[i].lch].fa=city[city[i].rch].fa=i;
	}
	for (int i=1;i<=n;++i)
	{
		memset(f,false,sizeof(f));sum=0;
		dfs(i,0);
		ans=min(ans,sum);
	}
	cout<<ans;
	return 0;
}

2020/7/14 12:40
加载中...