-
个人简介
应该有些人是博雅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; } */