CF763A Timofey and a tree(思维)

简介: CF763A Timofey and a tree(思维)

现在有一个无根树,我们加入把其中的一个结点看做根,那么这个根上的每一个子树中都不能有一个结点的颜色不同,如果都相同,那么此时就是合法的,我们输出YES及这个结点。如果不存这样的根,那么输出NO。


思路:

因为如果一个树的子树中只要有一个点与这个子树中的其他点颜色不同,那么这样主角就会生气,所以这样只有一种情况是合法的,就是当这个无根树的某个结点作为根时,其连接到的结点与根的颜色不一样的个数等于所有结点与这个根颜色不同的结点个数。(有点绕,耐心理解-)。因为子树中一旦出现某个结点与其他结点颜色不同就会造成整个树不合法。

#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 5;
int a[maxn], b[maxn], cnt[maxn], col[maxn];
int main() {
  int n;
  cin >> n;
  for (int i = 1; i <= n - 1; i++) {
    cin >> a[i] >> b[i];
  }
  for (int i = 1; i <= n; i++) {
    cin >> col[i];
  }
  int res = 0;
  for (int i = 1; i <= n - 1; i++) {
    if (col[a[i]] != col[b[i]]) { //相邻节点的颜色不同()
      cnt[a[i]]++; cnt[b[i]]++; res++;
    }
  }
  for (int i = 1; i <= n; i++) {
    if (cnt[i] == res) {
      cout << "YES" << endl;
      cout << i << endl;
      return 0;
    }
  }
  cout << "NO" << endl;
  return 0;
}
相关文章
|
算法 C++
蓝桥杯第十四讲--数论【例题】
蓝桥杯第十四讲--数论【例题】
345 0
蓝桥杯第十四讲--数论【例题】
|
存储 机器学习/深度学习 C++
C/C++数据在计算机内存中的存储形式详解
C/C++数据在计算机内存中的存储形式详解
|
前端开发 JavaScript Windows
GitHub访问问题与FastGithub下载及使用
FastGithub是一个开源的软件主要为了使GitHub畅通无阻,有超大量的IP资源、快速的IP检测功能,github加速神器,解决github打不开、用户头像无法加载、releases无法上传下载、git-clone、git-pull、git-push失败等问题。
1808 0
|
9月前
|
芯片 异构计算
【FPGA】高云FPGA之IP核的使用->PLL锁相环(二)
【FPGA】高云FPGA之IP核的使用->PLL锁相环
167 1
|
存储 数据安全/隐私保护
云盘企业版和个人版的区别
云盘企业版和个人版的区别
245 3
|
机器学习/深度学习 人工智能 弹性计算
AI降成本利器!阿里云弹性加速计算实例来了,最高节省50%推理成本
近日,阿里云推出了弹性加速计算实例(EAIS)家族及产品弹性加速推理实例(简称EAIS.EI),首次实现了GPU与CPU/内存的解耦,可在提升AI推理效率的同时大幅降低成本。
9678 0
AI降成本利器!阿里云弹性加速计算实例来了,最高节省50%推理成本
|
Kubernetes 应用服务中间件 nginx
文档解读 | K8S中的Pod和容器配置(三)
默认情况下,pod运行没有任何CPU和内存的限制,这意味着系统中的pod可以尽可能多的消耗CPU和内存在pod执行的节点。 基于多种原因,用户可能希望对系统中的单个pod的资源使用量进行限制。 例如: 集群中的每个节点都有2GB内存。
2060 0
|
搜索推荐 算法 Shell
八大排序-直接插入排序、希尔排序、直接选择排序、冒泡排序、堆排序、快速排序、归并排序、基数排序(上)1
八大排序-直接插入排序、希尔排序、直接选择排序、冒泡排序、堆排序、快速排序、归并排序、基数排序(上)1
217 0
|
9月前
|
数据采集 Java Python
python并发编程:Python在FastAPI服务中使用多进程池加速程序运行
python并发编程:Python在FastAPI服务中使用多进程池加速程序运行
1363 0

热门文章

最新文章