求助
  • 板块灌水区
  • 楼主tqlzq
  • 当前回复6
  • 已保存回复6
  • 发布时间2023/9/26 16:06
  • 上次更新2023/11/2 18:01:51
查看原帖
求助
418506
tqlzq楼主2023/9/26 16:06

P8267

#include<bits/stdc++.h>
using namespace std;
struct node{
	vector<int>v;
	int s;
}a[1006];
int n,k,l,m,cnt;
void dfs(int x){
	if(a[x].v.size()==0){
		cnt=1;
		return;
	} 
	if(cnt==1) return;
	for(int i=0;i<a[x].v.size()&&cnt!=1;i++){
		if(a[a[x].v[i]].s==0) dfs(a[x].v[i]);
		if(cnt!=1) a[a[x].v[i]].s--;
	} 
	if(cnt!=1) a[x].s++;
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++) cin>>a[i].s;
	cin>>k;
	for(int i=1;i<=k;i++){
		cin>>l>>m;
		for(int j=1;j<=m;j++){
			int t;
			cin>>t;
			a[l].v.push_back(t);
		}
	}
	while(cnt!=1) dfs(n);
	int z=0;
	for(int i=1;i<n;i++) z+=a[i].s;
	if(z!=0) a[n].s--;
	cout<<a[n].s;
} 

本人发现,一旦需要的金属没有配方就会输出-1,求大佬怎么改

2023/9/26 16:06
加载中...