CodeForces570D - Tree Requests 【dfs序】

#include
#include
#include
#include
#include
#include
using namespace std;
#define maxn 500010
int n,m,t,d,tmp;
vector e[maxn],pos[maxn],sta[maxn];
char s[maxn];int idx,in[maxn],out[maxn],st,ed;
void dfs(int u,int dep)
{
	in[u]=++idx;
	pos[dep].push_back(in[u]);
	sta[dep].push_back(sta[dep].size()?sta[dep].back()^(1<<(s[u]-'a')):1<<(s[u]-'a'));
	for(int i=0;i
dfs序+异或 状态压缩

你可能感兴趣的:(CodeForces570D - Tree Requests 【dfs序】)