#include<bits/stdc++.h>
using namespace std;
#define for(i,a,b) for(int i=a;i<=b;++i) //T,N,Q,,u,v,w,s,tree[maxn][?],val[maxn],cashbook[maxn*2],ans const int maxn=1e5+5;
struct node
{
int i,v;
node(){}
node(int a,int b){i=a,v=b;}
};
vector<node> tree[maxn];
int val[maxn],cashbook[2*maxn],s;
long long ans;
void dfs(int i,int p)
{
//record in cashbook[]
cashbook[val[i]]++;
//renew ans;
ans+=cashbook[s^val[i]];
//move to sons, cal their value
int nei=tree[i].size();
for(j,0,nei-1)
{
int name=tree[i][j].i;
if(name==p)continue;
val[name]=val[i]^tree[i][j].v;
dfs(name,i);
}
}
int main()
{
int T;scanf("%d",&T);
while(T--)
{
//construct the tree
int N,u,v,w;scanf("%d",&N);
for(i,1,N)tree[i].clear();
for(i,1,N-1)
{
scanf("%d%d%d",&u,&v,&w);
tree[u].push_back(node(v,w));
tree[v].push_back(node(u,w));
}
//query
int Q;scanf("%D",&Q);
while(Q--)
{
memset(cashbook,0,sizeof cashbook);
memset(val,0,sizeof val);
ans=0;
scanf("%d",&s);
dfs(1,0);
//print ans
printf("%lld\n",ans);
}
}
}

最新文章

  1. sql基础语句(技巧)
  2. css控制页面打印(分页、屏蔽不需要打印的对象)
  3. 二分法 organ Saltless
  4. DLUTOJ 1033 Matrix
  5. centos6.6安装redis服务安装redis服务,对于discuz来说可以作为缓存使用,减轻服务器压力
  6. javascript活动对象的理解——伪单例模式
  7. 网格最短路径算法(Dijkstra &amp; Fast Marching)(转)
  8. VB6之Mandelbrot集
  9. Java8 新特性之Stream----java.util.stream
  10. Linux下安装Redis php-redis扩展 redis重启shell脚本 超详细!
  11. C# 枚举器
  12. 【机器学习】随机森林 Random Forest 得到模型后,评估参数重要性
  13. 将Windows下的InfluxDB、Grafana做成Windows服务
  14. Android BroadcastReceiver解析
  15. Summary on Visual Tracking: Paper List, Benchmarks and Top Groups
  16. 设置获取cookie,setCookie,getCookie
  17. appcan更新
  18. Mindoc搭建流程
  19. pycharm多行注释
  20. DP设状态 : 状压与线

热门文章

  1. STM32F103ZET6独立看门狗
  2. flume客户端模拟数据发送并记录在mysql数据库
  3. VMware中虚拟机克隆后多台主机网络冲突
  4. node+mysql数据库连接(入门)
  5. matplotlib BlendedGenericTransform(混合变换)和CompositeGenericTransform(复合变换)
  6. Jmeter连接mysql数据库?so easy!!!
  7. 借助Python来实现的定量城市研究
  8. 基于RabbitMQ的Rpc框架
  9. Oracle使用fy_recover_data恢复truncate删除的数据
  10. LeetCode#160-Intersection of Two Linked Lists-相交链表