T621307's std
#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的更多相关文章
- 【NX二次开发】NX内部函数,libuifw.dll文件中的内部函数
本文分为两部分:"带参数的函数"和 "带修饰的函数". 浏览这篇博客前请先阅读: [NX二次开发]NX内部函数,查找内部函数的方法 带参数的函数: void U ...
- C++ std::set
std::set template < class T, // set::key_type/value_type class Compare = less<T>, // set::k ...
- C++ std::priority_queue
std::priority_queue template <class T, class Container = vector<T>, class Compare = less< ...
- C++ std::queue
std::queue template <class T, class Container = deque<T> > class queue; FIFO queue queue ...
- C++ std::multimap
std::multimap template < class Key, // multimap::key_type class T, // multimap::mapped_type class ...
- C++ std::map
std::map template < class Key, // map::key_type class T, // map::mapped_type class Compare = less ...
- C++ std::list
std::list template < class T, class Alloc = allocator > class list; List Lists are sequence co ...
- C++ std::forward_list
std::forward_list template < class T, class Alloc = allocator > class forward_list; Forward li ...
- C++ std::deque
std::deque template < class T, class Alloc = allocator > class deque; Double ended queue deque ...
- C++ std::array
std::array template < class T, size_t N > class array; Code Example #include <iostream> ...
随机推荐
- 推荐一个kafka可视化客户端GUI工具(Kafka King)
Kafka King,比较新,只需要填写kafka连接地址就行,不需要什么zookeeper. 支持的功能也多: 查看集群节点列表(完成) 创建主题(支持批量).删除主题.支持根据消费者组统计每个to ...
- odoo16里面的常用方法
一.全局搜索与显示 def name_get(self): res = [] for order in self: name = order.name if order.draw_number: na ...
- windows环境下的常用命令
1.appwiz.cpl 程序和功能 2.certmgr.msc 证书管理实用程序 3.control 控制面板 4.firewall.cpl 防火墙 5.fsmgmt.msc 共享文件夹管理器 6. ...
- 2.3.net core 工作流WorkFlow流程(流程节点附件设置)
流程节点附件设置 WikeFlow官网:http://www.wikesoft.com 有些流程要求某些节点必须上传附件. 你只需要在流程节点中配置附件的Key,附件名称,是否必传. 如下图: 文件存 ...
- 获取Spring ApplicationContext容器上下文对象实例
Spring ApplicationContext 容器可以加载配置文件中定义的 bean,将所有的 bean 集中在一起,当有请求的时候分配 bean.如果说BeanFactory是Spring的心 ...
- Spring Ai 从Demo到搭建套壳项目(一)初识与实现与deepseek对话模式
前言 为什么说Java长青,主要是因为其生态圈完善,Spring又做了一款脚手架,把对接各个LLM厂商的sdk做了一遍,形成一系列的spring-ai-starter-** 的依赖. 目前为止版本去到 ...
- Linux下搭建Kafka集群
摘要 Kafka 是一个分布式的基于push-subscribe的消息系统,它具备快速.可扩展.可持久化的特点.由 LinkedIn 开源,用作 LinkedIn 的活动流(Activity Stre ...
- idea里面怎么把自己项目添加maven
首先你要清楚什么是maven: maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件.Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具 ...
- PS简单图片拼接
1.打开图片 首先打开需要拼接的图片两张 以这两张图片为例子 首先我们先看看这两张图片的宽高分别为多少 打开图像---->画布大小 好记录下来小姐姐宽大概17cm,高大概20cm. 再来看看提莫 ...
- 数据开发提效有秘诀!离线开发BatchWorks 六大典型场景拆解
回顾大数据的发展历程,一句话概括就是海量数据的高效处理.在当今快节奏.不断变化的市场环境下,优秀的开发效率已经成为企业数字化转型的必备条件. 数栈离线开发BatchWorks 是一款专注离线数据ELT ...