#include <bits/stdc++.h>
using namespace std; void solve() {
int T;
cin >> T;
while (T--) {
int n;
cin >> n;
vector<vector<int>> tree(n + 1);
for (int i = 0; i < n - 1; ++i) {
int x, y;
cin >> x >> y;
tree[x].push_back(y);
}
vector<int> a(n + 1);
for (int i = 1; i <= n; ++i) {
cin >> a[i];
} bool is_palindrome_tree = true;
vector<pair<int, unordered_map<int, int>>> stack;
stack.emplace_back(1, unordered_map<int, int>()); while (!stack.empty() && is_palindrome_tree) {
auto [node, freq] = stack.back();
stack.pop_back();
unordered_map<int, int> new_freq = freq;
new_freq[a[node]]++; if (tree[node].empty()) {
int odd_count = 0;
for (const auto& [key, val] : new_freq) {
if (val % 2 != 0) {
odd_count++;
if (odd_count > 1) {
break;
}
}
}
if (odd_count > 1) {
is_palindrome_tree = false;
}
} else {
for (int child : tree[node]) {
stack.emplace_back(child, new_freq);
}
}
}
cout << (is_palindrome_tree ? "Yes" : "No") << endl;
}
} int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
solve();
return 0;
}

T621307's std的更多相关文章

  1. 【NX二次开发】NX内部函数,libuifw.dll文件中的内部函数

    本文分为两部分:"带参数的函数"和 "带修饰的函数". 浏览这篇博客前请先阅读: [NX二次开发]NX内部函数,查找内部函数的方法 带参数的函数: void U ...

  2. C++ std::set

    std::set template < class T, // set::key_type/value_type class Compare = less<T>, // set::k ...

  3. C++ std::priority_queue

    std::priority_queue template <class T, class Container = vector<T>, class Compare = less< ...

  4. C++ std::queue

    std::queue template <class T, class Container = deque<T> > class queue; FIFO queue queue ...

  5. C++ std::multimap

    std::multimap template < class Key, // multimap::key_type class T, // multimap::mapped_type class ...

  6. C++ std::map

    std::map template < class Key, // map::key_type class T, // map::mapped_type class Compare = less ...

  7. C++ std::list

    std::list template < class T, class Alloc = allocator > class list; List Lists are sequence co ...

  8. C++ std::forward_list

    std::forward_list template < class T, class Alloc = allocator > class forward_list; Forward li ...

  9. C++ std::deque

    std::deque template < class T, class Alloc = allocator > class deque; Double ended queue deque ...

  10. C++ std::array

    std::array template < class T, size_t N > class array; Code Example #include <iostream> ...

随机推荐

  1. 推荐一个kafka可视化客户端GUI工具(Kafka King)

    Kafka King,比较新,只需要填写kafka连接地址就行,不需要什么zookeeper. 支持的功能也多: 查看集群节点列表(完成) 创建主题(支持批量).删除主题.支持根据消费者组统计每个to ...

  2. odoo16里面的常用方法

    一.全局搜索与显示 def name_get(self): res = [] for order in self: name = order.name if order.draw_number: na ...

  3. windows环境下的常用命令

    1.appwiz.cpl 程序和功能 2.certmgr.msc 证书管理实用程序 3.control 控制面板 4.firewall.cpl 防火墙 5.fsmgmt.msc 共享文件夹管理器 6. ...

  4. 2.3.net core 工作流WorkFlow流程(流程节点附件设置)

    流程节点附件设置 WikeFlow官网:http://www.wikesoft.com 有些流程要求某些节点必须上传附件. 你只需要在流程节点中配置附件的Key,附件名称,是否必传. 如下图: 文件存 ...

  5. 获取Spring ApplicationContext容器上下文对象实例

    Spring ApplicationContext 容器可以加载配置文件中定义的 bean,将所有的 bean 集中在一起,当有请求的时候分配 bean.如果说BeanFactory是Spring的心 ...

  6. Spring Ai 从Demo到搭建套壳项目(一)初识与实现与deepseek对话模式

    前言 为什么说Java长青,主要是因为其生态圈完善,Spring又做了一款脚手架,把对接各个LLM厂商的sdk做了一遍,形成一系列的spring-ai-starter-** 的依赖. 目前为止版本去到 ...

  7. Linux下搭建Kafka集群

    摘要 Kafka 是一个分布式的基于push-subscribe的消息系统,它具备快速.可扩展.可持久化的特点.由 LinkedIn 开源,用作 LinkedIn 的活动流(Activity Stre ...

  8. idea里面怎么把自己项目添加maven

    首先你要清楚什么是maven: maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件.Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具 ...

  9. PS简单图片拼接

    1.打开图片 首先打开需要拼接的图片两张 以这两张图片为例子 首先我们先看看这两张图片的宽高分别为多少 打开图像---->画布大小 好记录下来小姐姐宽大概17cm,高大概20cm. 再来看看提莫 ...

  10. 数据开发提效有秘诀!离线开发BatchWorks 六大典型场景拆解

    回顾大数据的发展历程,一句话概括就是海量数据的高效处理.在当今快节奏.不断变化的市场环境下,优秀的开发效率已经成为企业数字化转型的必备条件. 数栈离线开发BatchWorks 是一款专注离线数据ELT ...