• 个人简介

    应该有些人是博雅OI的吧

    /*
    1.
    #include<bits/stdc++.h>
    using namespace std;
    typedef unsigned long long ull;
    ull n,t,a[100001][3];
    void dfs1(ull x){
    	cout<<x<<" ";
    	if(a[x][0])dfs1(a[x][0]);
    	if(a[x][1])dfs1(a[x][1]);
    }
    void dfs2(ull x){
    	if(a[x][0])dfs2(a[x][0]);
    	cout<<x<<" ";
    	if(a[x][1])dfs2(a[x][1]);
    }
    void dfs3(ull x){
    	if(a[x][0])dfs3(a[x][0]);
    	if(a[x][1])dfs3(a[x][1]);
    	cout<<x<<" ";
    }
    int main(){
    	ios::sync_with_stdio(0);
    	cin.tie(0);
    	cout.tie(0);
    	cin>>n>>t;
    	for(int i=1;i<=n;i++)cin>>a[i][0]>>a[i][1];
    	if(t==1)dfs1(1);
    	if(t==2)dfs2(1);
    	if(t==3)dfs3(1);
    	return 0;
    }
    2.
    #include<bits/stdc++.h>
    using namespace std;
    vector<int>a[100001];
    int n,q,dep[100001],vis[100001];
    void dfs(int x,int d){
    	dep[x]=d;
    	vis[x]=1;
    	for(int i=0;i<a[x].size();i++)if(!vis[a[x][i]])dfs(a[x][i],d+1);
    }
    int main(){
    	ios::sync_with_stdio(0);
    	cin.tie(0);
    	cout.tie(0);
    	cin>>n>>q;
    	for(int i=1;i<n;i++){
    		int x,y;
    		cin>>x>>y;
    		a[x].push_back(y);
    		a[y].push_back(x);
    	}
    	dfs(1,1);
    	for(int i=1;i<=q;i++){
    		int z;
    		cin>>z;
    		cout<<dep[z]<<endl;
    	}
    	return 0;
    }
    3.
    #include<bits/stdc++.h>
    using namespace std;
    vector<long long>a[100001];
    long long n,q,ans[100001],vis[100001],b[100001];
    long long dfs(long long x){
    	long long sum=b[x];
    	vis[x]=1;
    	for(int i=0;i<a[x].size();i++)if(!vis[a[x][i]])sum+=dfs(a[x][i]);
    	return ans[x]=sum;
    }
    int main(){
    	ios::sync_with_stdio(0);
    	cin.tie(0);
    	cout.tie(0);
    	cin>>n>>q;
    	for(int i=1;i<=n;i++)cin>>b[i];
    	for(int i=2;i<=n;i++){
    		int x;
    		cin>>x;
    		a[x].push_back(i);
    		a[i].push_back(x);
    	}
    	dfs(1);
    	for(int i=1;i<=q;i++){
    		int x;
    		cin>>x;
    		cout<<ans[x]<<endl;
    	}
    	return 0;
    }
    */