[cf] E - Gardener and Tree 拓扑排序
前言
传送门 :
一开始想到了拓扑排序 但是拓扑是对一个点,所以还是想着中心根深度继续走
思路
我们对于每一个叶子节点 对其连接的节点的度数−1-1−1 进行拓扑操作
然后我们在操作的时候 同时记录一下,这是第几轮被删除的节点
最后对节点进行一遍 前缀和 输出即可
CODE
#include <bits/stdc++.h>
using namespace std;
#define ned '\n'
#define pb push_back
const int N = 4e5+10;
vector<int> save[N];
vector<int> v;int in[N];
int val[N];
int cnt[N];
int n,k;void init()
{for(int i = 0;i<=n;i++){save[i].clear();val[i] = 0;cnt[i] = 0 ;in[i] = 0;}v.clear();
}
void solve()
{//int n,k;init();cin>>n>>k;if(n == 1){cout<<0<<ned;return;}for(int i=1; i<=n-1; i++){int a,b;cin>>a>>b;save[a].pb(b);save[b].pb(a);in[a]++,in[b]++;}int tot = 0,c=1;for(int i=1; i<=n; i++)if(in[i] == 1)v.pb(i);///存第一遍 所有叶子节点while(tot<n){vector<int> v2;tot+=v.size();for(auto it : v){val[it] = c;for(auto it2 : save[it]){--in[it2];if(in[it2] == 1)v2.pb(it2);}}v = v2;c++;}for(int i=1; i<=n; i++)cnt[val[i]] ++;for(int i=1; i<=n; i++)cnt[i] += cnt[i-1];if(k>n)cout<<0<<ned;elsecout<<n-cnt[k]<<ned;
}int main()
{ios::sync_with_stdio(false);int t;cin>>t;while(t -- )solve();return 0;
}
[cf] E - Gardener and Tree 拓扑排序相关推荐
- E. Gardener and Tree(拓扑)
Gardener and Tree 题意:k次操作,每次删去叶子节点,问最后剩的节点 思路:拓扑,度为1的就是叶子结点 //#pragma GCC optimize(2) //#pragma GCC ...
- CF思维联系--CodeForces -214C (拓扑排序+思维+贪心)
ACM思维题训练集合 Furik and Rubik love playing computer games. Furik has recently found a new game that gre ...
- Codeforces Round #748 (Div. 3) E. Gardener and Tree(拓扑排序)
linkk 题意: 给一棵树nnn个节点,每次删掉所有的叶子,操作kkk次,求剩下的节点数 思路: 拓扑排序,每次将度数<=1<=1<=1的点放入队列,并且维护操作的次数.对于队列中 ...
- 拓扑排序 Codeforces Round #748 (Div. 3)E. Gardener and Tree
由于最近做了很多关于树的题目,突然想起来之前有一道题意很简单的拓扑排序的题目,索性一块写了. 题意:给出一棵树,总共k次操作,每次操作删除叶子节点,问k次操作后总共还剩余多少节点. 难点:如可判断操作 ...
- E. Gardener and Tree(拓扑排序)
Codeforces Round #748 (Div. 3) 题意 给一棵n个节点n-1条边的树,每次删掉所有的叶子节点,操作k次,求剩下的节点数. 思路 类拓扑排序.先把度数 ≤\le≤ 1的节点入 ...
- 图论之拓扑排序 poj 2367 Genealogical tree
题目链接 http://poj.org/problem?id=2367 题意就是给定一系列关系,按这些关系拓扑排序. #include<cstdio> #include<cstrin ...
- *【CF#510C】Fox And Names (拓扑排序)
题干: Fox Ciel is going to publish a paper on FOCS (Foxes Operated Computer Systems, pronounce: " ...
- POJ 2367 Genealogical tree【拓扑排序】
题意:大概意思是--有一个家族聚集在一起,现在由家族里面的人讲话,辈分高的人先讲话.现在给出n,然后再给出n行数 第i行输入的数表示的意思是第i行的子孙是哪些数,然后这些数排在i的后面. 比如样例 5 ...
- java 有向无环图 树_拓扑排序-有向无环图(DAG, Directed Acyclic Graph)
条件: 1.每个顶点出现且只出现一次. 2.若存在一条从顶点 A 到顶点 B 的路径,那么在序列中顶点 A 出现在顶点 B 的前面. 有向无环图(DAG)才有拓扑排序,非DAG图没有拓扑排序一说. 一 ...
最新文章
- 十六进制190的2进制数_十六进制数系统解释
- Java精选笔记_XML基础
- 泉州服务器维修,泉州云服务器
- (零)我为什么要写Linux学习笔记?
- 1.19 实例:Java求数组元素的最大和最小值
- OpenCASCADE绘制测试线束:性能评估命令之VDrawSphere
- Kubernetes上的负载均衡详解
- 软件工程第一次结对编程
- python朴素贝叶斯分类MNIST数据集
- emf建模要小心连线循环指向的问题
- 第八届蓝桥杯java b组第十题
- shipyard中文版发布
- python和c语言的区别-c语言和python的区别
- 四年,新华三安全大变样
- token什么意思中文在C语言中,token是什么意思?
- ps快捷键常用表,ps快捷键大全!最全面的PS快捷键使用指南(图文演示)
- 博客营销成功案例分析
- 秘籍:MSN好友IP地址随便查
- Midjourney|文心一格prompt教程[基础篇]:注册使用教程、风格设置、参数介绍、隐私模式等
- 2021-08-23-Nginx安装与部署项目