题意:

1-刺猬图满足:

  1. 是一棵树
  2. 存在一个中心节点u与其它所有点相连
  3. 包括中心节点在内,至少4个节点

2-刺猬图满足:

  1. 是一棵树
  2. 存在一个中心节点u与其它所有1-刺猬图的中心节点相连
  3. 这个中心节点至少连接3个以上的1-刺猬图

k-刺猬图依次类推,给你一棵树,问你它是不是k-刺猬图

思路:

按题意模拟即可,注意细节

  • k这么大肯定毫无意义,当k超过15时就一定是no了,因为没有那么多节点(大概节点个数要是3的k次方倍)
  • 直接递归不容易出错,也就是每次将叶子节点删掉即可
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<map>
#include<string>
#include<math.h>
#include<queue>
#include<stack>
#include<iostream>
using namespace std;
#define LL long long
#define mod 1000000007
vector<int> G[100005];
int in[100005][16], flag[100005];
int main(void)
{int n, k, x, y, i, j, p, v, sum;scanf("%d%d", &n, &k);for(i=1;i<=n-1;i++){scanf("%d%d", &x, &y);G[x].push_back(y);G[y].push_back(x);in[x][0]++, in[y][0]++;}if(k>=15 || n<=3)printf("No\n");else{sum = n;for(p=1;p<=k;p++){for(i=1;i<=n;i++){if(in[i][p-1]==1){for(j=0;j<G[i].size();j++){v = G[i][j];if(flag[v])continue;if(flag[v]==0 && in[v][p-1]==1){printf("No\n");return 0;}in[v][p]++;}flag[i] = 1, sum--;}}for(i=1;i<=n;i++){if(in[i][p]==0 || flag[i])continue;if(in[i][p]<=2){printf("No\n");return 0;}in[i][p] = 1;}if(sum==1){if(p==k)printf("Yes\n");elseprintf("No\n");return 0;}}printf("No\n");return 0;}
}

Codeforces Round #518 (Div. 2): E. Multihedgehog(模拟)相关推荐

  1. Codeforces Round #552 (Div. 3) E stl模拟 F dp G gcd

    contest链接 https://codeforces.com/contest/1154 E 题解思路 直接哈希模拟删除T了,可以用setsetset和lowerlowerlower_boundbo ...

  2. Codeforces Round #518 (Div. 2): F. Knights(神题)

    题意: 一个无限大的棋盘,初始往这个棋盘中放n个骑士(骑士走日字,和马一样),之后如果存在一个点可以被4个骑士一步到达,那么就往这个格子上再放一个马,并且无限继续下去,直到不存在任意一个点可以被4个骑 ...

  3. Codeforces Round #518 (Div. 2): D. Array Without Local Maximums(DP)

    题意: 有一个长度为n的序列,满足对于所有的a[x],与它相邻的两个元素a[x-1]和a[x+1]中至少有一个大于等于它,其中a[1]和a[n]当然只有一个相邻元素, 现在这个序列中有些数字被破坏了( ...

  4. Codeforces Round #176 (Div. 2) D. Shifting(模拟,STLdeque应用)

    题目链接 D. Shifting time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...

  5. 模拟 Codeforces Round #249 (Div. 2) C. Cardiogram

    题目地址:http://codeforces.com/contest/435/problem/C 1 /* 2 题意:给一组公式,一组数据,计算得到一系列的坐标点,画出折线图:) 3 模拟题:蛮恶心的 ...

  6. 模拟 Codeforces Round #297 (Div. 2) A. Vitaliy and Pie

    题目传送门 1 /* 2 模拟:这就是一道模拟水题,看到标签是贪心,还以为错了呢 3 题目倒是很长:) 4 */ 5 #include <cstdio> 6 #include <al ...

  7. Codeforces Round #656 (Div. 3) F. Removing Leaves 贪心 + 模拟

    传送门 文章目录 题意: 思路: 题意: 思路: 首先有一个贪心策略就是每次都找一个叶子节点最多的点,让后删掉他的kkk个叶子节点,现在我们就来考虑如何模拟这个过程. 我们整一个vector<s ...

  8. Codeforces Round #249 (Div. 2) (模拟)

    Codeforces Round #249 (Div. 2) (模拟) C. Cardiogram time limit per test 1 second memory limit per test ...

  9. Codeforces Round #743 (Div. 2) D. Xor of 3 模拟 + 构造

    传送门 文章目录 题意: 思路: 题意: 给你一个010101序列aaa,定义一次操作是选择一个[1,n−2][1,n-2][1,n−2]范围内的下表,将ai,ai+1,ai+2a_i,a_{i+1} ...

最新文章

  1. 计算机基础在小学的教学论文,小学基础教育论文范文
  2. smart-socket如何实现字符串通信
  3. ICCV 2013的人脸特征点检评测及代码
  4. LeetCode: 150:逆波兰表示法求值。
  5. Kafka MirrorMaker 跨集群同步工具
  6. 阿里巴巴超大规模 Kubernetes 基础设施运维体系介绍
  7. html与css重置代码,发个自己的CSS重置基础代码
  8. 挖矿仍然有利可图吗?
  9. 13. 面向对象的概述
  10. 前端开发工程师应该关注什么?
  11. 蓝鹰立德的SAP解决方案开启飞马模式(FMEA)
  12. 互联网日报 | 京东健康提交赴港上市招股书;荣耀联合美团推出“共享笔记本”服务;携程获第三方支付牌照...
  13. 实例003 输出名言
  14. Java架构师大型互联网高级技术视频教程
  15. Visual Studio 2017卸载不干净
  16. 【沉痛悼念】首届国医大师唐由之逝世 | 曾为毛主席治疗白内障
  17. linux 查看ko符号表,linux modprobe命令参数及用法详解--linux加载模块命令
  18. Windows XP注册表与驱动程序优化全集
  19. php利用飞信api给好友发短信
  20. 《牛客刷verilog》Part III Verilog企业真题

热门文章

  1. python基本代码教程-Python入门教程丨1300多行代码,让你轻松掌握基础知识点
  2. python画3d图-python之画三维图像
  3. python装饰器详解-Python装饰器基础详解
  4. python学习手册-Python 重点知识整理(基于Python学习手册第四版)
  5. python基本代码教程-python基础教程第三版源代码
  6. python自动化测试-Python自动化测试入门,看这一篇就足以
  7. python安装教程-Python 3.5安装教程
  8. python3入门经典100例-Python3入门经典100例
  9. linux向脚本传递参数,Linux 使用位置变量向脚本传递参数
  10. 在vue项目中导入element-ui