大佬们求助啊
查看原帖
大佬们求助啊
936417
wsbSB楼主2023/8/12 16:54
#include<bits/stdc++.h>
using namespace std;
int n,a,y,x;
int d[30],w[30],id[30],next[30];
bool linker[30][30];
int count(int u)
{
	if(d[u])
		return d[u];
	int v=0,k=-1;
	for(int i=1;i<=n;i++)
		if(linker[u][i])
		{
			if(d[i]==0)
				d[i]=count(i);
			if(d[i]>v)
				v=d[i],k=i;
		}
	next[u]=k;
	return v+w[u];
}
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>w[i];
		id[i]=0;
		next[i]=-1;
	}
	for(int i=1;i<=n;i++)
		for(int j=i+1;j<=n;j++)
		{
			cin>>a;
			if(a)
			{
				linker[i][j]=true;
				id[j]++;
			}		
		}
	for(int i=1;i<=n;i++)
		if(id[i]==0)
		{
			d[i]=count(i);
			if(d[i]>y)
				y=d[i],x=i;
		}
	while(x!=-1)
	{
		cout<<x<<' ';
		x=next[x];
	}
	cout<<endl<<y;
	return 0;
}
2023/8/12 16:54
加载中...