DFS82分,两个WA求助
查看原帖
DFS82分,两个WA求助
464515
reginakxl楼主2022/10/22 22:40

RT,从9分一路改到了82分卡住了,也没有数据

#include <bits/stdc++.h>
using namespace std;
int n,a[155],k,b[155][155],ans;
bool dfs(int x)
{
	if(!b[x][0])
	{
		return 0;
	}
	for(int i=b[x][0];i>=1;i--)
	{
		if(!a[b[x][i]])
		{
			if(!dfs(b[x][i]))
			{
				return 0;
			}
		}
	}
	for(int i=1;i<=b[x][0];i++)
	{
		a[b[x][i]]--;
	}
	a[x]++;
	return 1;
}
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	ans=a[n];
	cin>>k;
	int l;
	for(int i=1;i<=k;i++)
	{
		cin>>l;
		cin>>b[l][0];
		for(int j=1;j<=b[l][0];j++)
		{
			cin>>b[l][j];
		}
	}
	while(dfs(n))
	{
		ans++;
	}
	cout<<ans<<endl;
    return 0;  
}
2022/10/22 22:40
加载中...