| 记录编号 | 
        600484 | 
        评测结果 | 
        WWTTTTTTTT | 
    
    
        | 题目名称 | 
        4140.终末鸟 | 
        最终得分 | 
        0 | 
            
    
    
        | 用户昵称 | 
         梦那边的美好TT | 
        是否通过 | 
        未通过 | 
    
    
        | 代码语言 | 
        C++ | 
        运行时间 | 
        88.910 s  | 
    
    
        | 提交时间 | 
        2025-05-05 14:27:51 | 
        内存使用 | 
        359.34 MiB  | 
        
    
    
    
    		显示代码纯文本
		
		#include<bits/stdc++.h>
using namespace std;
int n,q,fz1,fz2,fz,ans;
bool lt[10000001],vis[10000001],vv[10000001],flag;
vector<int> v[10000001];
void dfs(int x){
	if(vis[x]==1) flag=false;
	vis[x]=1;
	vv[x]=1;
	int m=v[x].size();
	cout<<'*'<<m<<endl;
	for(int i=0;i<m;i++){
		if(lt[v[x][i]]==1&&vv[x]==0) dfs(v[x][i]);
	}
	return ;
}
/*void dfss(int x,int gl){
	if(x==gl) 
	int m=v[x].size();
	for(int i=0;i<m;i++){
		if(vis[v[x][i]]==1){
			
		}
	}
}*/
int main(){
	freopen("birds.in","r",stdin);
	freopen("birds.out","w",stdout);
	ios::sync_with_stdio(0);
	cin.tie(0),cout.tie(0);
	cin>>n;
	for(int i=1;i<n;i++){
		cin>>fz1>>fz2;
		v[fz1].push_back(fz2);
		v[fz2].push_back(fz1);
	}
	for(int i=1;i<=n;i++) cin>>lt[i];
	for(int j=1;j<=n;j++){
		if(vis[j]==0&<[j]==1){
			memset(vv,0,sizeof(vv));
			flag=true;
			dfs(j);
			if(flag) ans++;
		}
	}
	cout<<ans<<endl;
	cin>>q;
	for(int i=1;i<=q;i++){
		cin>>fz;
		if(lt[fz]==0){
			lt[fz]=1;
			vis[fz]=1;
			ans++;
			int m=v[fz].size();
			for(int j=0;j<m;j++){
				if(lt[v[fz][j]]==1){
					ans--;
					break;
				}
			}
		}else{
			lt[fz]=!lt[fz];
			vis[fz]=!vis[fz];
			for(int j=1;j<=n;j++){
				if(vis[j]==0&<[j]==1){
					memset(vv,0,sizeof(vv));
					flag=true;
					dfs(j);
					if(flag) ans++;
				}
			}
		}
		cout<<ans<<endl;
	}
	return 0;
}