求助大佬!!!
  • 板块学术版
  • 楼主wweiyuzhao
  • 当前回复3
  • 已保存回复3
  • 发布时间2021/8/8 09:55
  • 上次更新2023/11/4 11:39:48
查看原帖
求助大佬!!!
137627
wweiyuzhao楼主2021/8/8 09:55

P1113

#include<iostream>
#include<cstdio>
#include<vector>
using namespace std;
const int maxn=10010;
int n,m,x,ans;
int a[maxn],b[maxn];
vector<int>linker[maxn];
int dfs(int x)
{
	if(b[x])
	{
		return b[x];
	}
	for(int i=0;i<linker[x].size();i++)
	{
		b[x]=max(b[x],dfs(linker[x][i])); 
	}
	b[x]+=a[x];
	return b[x];
}
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>m>>a[i];
		while(cin>>x)
		{
			if(!x)
			{
				break;
			}
			else
			{
				linker[x].push_back(x);
			}
		}
	}
	for(int i=1;i<=n;i++)
	{
		ans=max(ans,dfs(i));
	}
	cout<<ans;
	return 0;
}

无缘无故就MLE了

2021/8/8 09:55
加载中...