P10723求调,QAQ回复有用就关注,未关私信
  • 板块灌水区
  • 楼主____QAQ____
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/8/23 12:06
  • 上次更新2024/8/23 15:07:59
查看原帖
P10723求调,QAQ回复有用就关注,未关私信
1123756
____QAQ____楼主2024/8/23 12:06
#include<bits/stdc++.h>
using namespace std;
int col[100001];
struct tree{
	int k;
	int f;
}node[100001];
queue<int> q;
int main(){
	int n;
	cin>>n;
	int whitecnt=0;
	for(int i=1;i<=n;i++){
		cin>>col[i];
		if(!col[i])whitecnt++;
	}
	for(int i=1;i<n;i++){
		int l,r;
		cin>>l>>r;
		node[r].f=l;
		node[l].k++;
	}
	for(int i=1;i<=n;i++){
		if(!node[i].k&&!col[i])q.push(i);
	}
	while(!q.empty()){
		int p=q.front();
		q.pop();
		node[node[p].f].k--;
		whitecnt--;
		if(!col[node[p].f]&&!node[node[p].f].k)q.push(node[p].f);
	}
	cout<<whitecnt;
	return 0;
}

思路:白色叶节点入队 将所有白色叶节点删除,将他们的爸爸的孩子数量统计都-1,再看还有木有白色孩子数量为0的节点

2024/8/23 12:06
加载中...