内存为什么会超
  • 板块P1364 医院设置
  • 楼主pw123
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/1/6 11:44
  • 上次更新2024/1/6 11:47:08
查看原帖
内存为什么会超
1014332
pw123楼主2024/1/6 11:44
#include <bits/stdc++.h>
using namespace std;
struct node 
{
	int l,r,v,f;
}a[105];
int  vis[105];
int sum,minn=INT_MAX,n;
int dfs(int step,int pos)
{
	sum+=a[pos].v*step;
	int f=a[pos].f,l=a[pos].l,r=a[pos].r;
	if(f&&!vis[f])
	{
		vis[f]=1;
		dfs(step+1,f);
	}
	if(l&&!vis[l])
	{   vis[l]=1;
		dfs(step+1,l);
	}
	if(r&&!vis[r])
	{	vis[r]=1;
		dfs(step+1,r);
	}
//	cout<<1;
}



int main(){
//cout<<sizeof(vis)<<" "<<sizeof(a)<<" ";
cin>>n;
for(int i=1;i<=n;i++)
{
	cin>>a[i].v>>a[i].l>>a[i].r;
	a[a[i].l].f=i;
	a[a[i].r].f=i;
}
for(int i=1;i<=n;i++)
{    sum=0;
    memset(vis,0,sizeof(vis));
   
	vis[i]=1;
	dfs(0,i);
	minn=min(minn,sum);
}
cout<<minn;
	return 0;
}

2024/1/6 11:44
加载中...