首页 > 其他分享 >Tree cutting

Tree cutting

时间:2024-02-03 15:11:43浏览次数:34  
标签:idx int siz Tree ne dfs st cutting

#include <bits/stdc++.h>
const int N = 1e5 + 10, M = 2 * N, mod = 1e9 + 7;
using namespace std;
int h[N], e[M], ne[M], idx = 0;
int n, s, siz[N];
bool st[N];
void add(int x, int y){
    e[idx] = y, ne[idx] = h[x], h[x] = idx ++;
}
void dfs(int u, int fa){
    siz[u] = 1;
    for(int i = h[u]; i != -1; i = ne[i]){
        int j = e[i];
        if(j == fa) continue;
        dfs(j, u);
        if(siz[j] > n / 2) st[u] = false;
        siz[u] += siz[j];
    }
    if(n - siz[u] > n / 2) st[u] = false;
}
int main()
{
    memset(h, -1, sizeof h);
    memset(st, true, sizeof st);
    cin >> n;
    for(int i = 1; i < n; i ++){
        int x, y;
        cin >> x >> y;
        add(x, y), add(y, x);
    }
    dfs(1, -1);
    bool flag = true;
    for(int i = 1; i <= n; i ++){
        if(st[i]){
            cout << i << endl;
            flag = false;
        }
    }
    if(flag){
        puts("NONE");
    }
    return 0;
}
/*
3 100
1 2 3
1 2
2 3
*/

标签:idx,int,siz,Tree,ne,dfs,st,cutting
From: https://www.cnblogs.com/acwhr/p/18004801

相关文章

  • Balanced Binary Tree
    SourceProblemStatementGivenabinarytree,determineifitisheight-balanced.Forthisproblem,aheight-balancedbinarytreeisdefinedasabinarytreeinwhichthedepthofthetwosubtreesofeverynodeneverdifferbymorethan1.ExampleGive......
  • Matrix-Tree 定理
    不会线性代数。行列式定义对一个\(n\timesn\)的矩阵\(A\),其\(n\)阶行列式写作\(\mathrm{det}(A)\)或\(|A|\),定义为\[\mathrm{det}(A)=|A|=\sum_{p}(-1)^{\tau(p)}\prod_{i=1}^{n}a_{i,p_i}\]所有的\(p\)形成\(1\)到\(n\)的全排列,\(\tau(p)\)表示排列\(p\)......
  • CF620E New Year Tree
    CF620ENewYearTree题意:给出一棵n个节点的树,根节点为1。每个节点上有一种颜色ci​。m次操作。操作有两种:1uc:将以u为根的子树上的所有节点的颜色改为c。2u:询问以u为根的子树上的所有节点的颜色数量。1<=c<=60。由于c的范围,可以用一个整数来表示每棵子......
  • Java 中的HashSet 和 TreeSet
    HashSetHashSet集合:无序不可重复方法HashSet集合的元素实际上是放到HashMap集合的Key中importjava.util.HashSet;importjava.util.Set;/**HashSet集合:无序不可重复**/publicclassHashSetTest{publicstaticvoidmain(String[]args){//演示一......
  • CF620E New Year Tree 题解
    题目链接:CF或者洛谷这题很简单,看到颜色数,HH的项链?树,树上的HH的项链?带修,树上的镜中的昆虫?\(c_i\le60\),噢,easy了。考虑一类信息,表示有和无,对于某种颜色来讲,\(0/1\)表示无或者有,而或运算让我们从小区间的有无情况反映到大区间的有无情况。一种暴力的想法,为每种颜色建立一棵有......
  • 聊聊ClickHouse MergeTree引擎的固定/自适应索引粒度
    ​ 前言我们在刚开始学习ClickHouse的MergeTree引擎时,就会发现建表语句的末尾总会有SETTINGSindex_granularity=8192这句话(其实不写也可以),表示索引粒度为8192。在每个datapart中,索引粒度参数的含义有二:每隔index_granularity行对主键组的数据进行采样,形成稀疏索引,并存储......
  • k-D Tree
    作用维护\(k\)维空间上的点的数据结构,树高严格\(log\),空间\(O(n)\)。支持插入,并如替罪羊树一般根据“不平衡度”\(\alpha\)重构。可以用线段树式或平衡树式实现。建树对于一个给定序列,类似线段树建树,使用nth_element可以总复杂度\(n\log\)建树。由于需要分割,要么轮......
  • Treeview
    usingDBHelper;usingSunny.UI;usingSystem;usingSystem.Collections.Generic;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.Windows.Forms;usingSystem.Linq;usingSystem.Text;namespaceMES{publicpartialclassRolePower:UIForm{......
  • Git、.gitinore、SourceTree使用介绍
    Git使用教程Git是分布式版本控制系统,也可以叫内容管理系统(CMS),工作管理系统。Git安装本文档后半部分会介绍SourceTree,SourceTree内置有Git所以这里不介绍其他Git安装方式。Git工作流程克隆Git资源到本地仓库(文件夹)在本地仓库中添加或修改文件。获取Git其他人的修改信......
  • CF337E Divisor Tree
    题意简述定义DivisorTree为一棵树:叶子上的数为质数。非叶子上的数为其所有儿子上的数的乘积。给定\(n\)个数\(a_i\),你需要让每个\(a_i\)都在DivisorTree上出现,并最小化DivisorTree的节点数量。\(n\le8,a_i\le10^6\)。分析显然DivisorTree上只能有质数......