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> ...
随机推荐
- An internal error occurred during: "Polling news feeds". javax/xml/bind/JAXBContext
WindowPerferences取消Enable automatic news polling的勾选
- lambdo表达式
************************************************************************* 原作者:ioriogami 原文:https://b ...
- 我的Vue之旅(4)
2020-10-26 使用v-bind来绑定class属性主要是分成了两类,即对象语法与数组语法,其实在数组中也是可以混用对象语法的,但在Demo3中我没有 写出来,有兴趣的话可以自己试试.在HTML ...
- Spring AOP 面向切面编程之AOP是什么
前言 软件工程有一个基本原则叫做"关注点分离"(Concern Separation),通俗的理解就是不同的问题交给不同的部分去解决,每部分专注于解决自己的问题.这年头互联网也 ...
- LLM 上下文长度详细介绍
1.概述 在<Token:大语言模型的"语言乐高",一切智能的基石>与<LLM 输出配置 (LLM output configuration)>这两篇博文中 ...
- 关于PHP 函数性能优化的技巧
本文由 ChatMoney团队出品 本文将详细介绍 PHP 函数性能优化的技巧.通过分析 PHP 函数的执行过程和性能瓶颈,提供一系列实用的优化方法,并结合代码示例,帮助读者提升 PHP 代码的执行效 ...
- 你应该懂的AI大模型(六)之 transformers
一.Transformer与transformers 结论:Transformer是模型架构,transfortmers是库. 问:为什么我们要知道Transformer与transformers呢? ...
- LinkedList链表
LinkedList 他是继承的List 双向链表 每当我们new一个linklist对象的时候 LinkedList linkedList = new LinkedList(); 他会先创建一个Li ...
- SAP采购订单屏幕控制
这里看交货计划的屏幕控制:交货计划增强,不可编辑 采购订单的程序是用类+屏幕写的. 所以直接看采购订单的程序:MEGUI 找到我们需要增强的屏幕,屏幕号1320 对应的类对象. BUILD_DYNPR ...
- 低版本.net ueditor结合cshtml getshell
ueditor版本.net 1.3.x,不是.net 1.4.3的getshell 上传页面是这样的需要开启flash,添加照片抓包.先正常上传 改后缀提示不允许的文件类型 注意到fileNameFo ...