Codeforces Round #518 (Div. 2): E. Multihedgehog(模拟)
题意:
1-刺猬图满足:
- 是一棵树
- 存在一个中心节点u与其它所有点相连
- 包括中心节点在内,至少4个节点
2-刺猬图满足:
- 是一棵树
- 存在一个中心节点u与其它所有1-刺猬图的中心节点相连
- 这个中心节点至少连接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(模拟)相关推荐
- Codeforces Round #552 (Div. 3) E stl模拟 F dp G gcd
contest链接 https://codeforces.com/contest/1154 E 题解思路 直接哈希模拟删除T了,可以用setsetset和lowerlowerlower_boundbo ...
- Codeforces Round #518 (Div. 2): F. Knights(神题)
题意: 一个无限大的棋盘,初始往这个棋盘中放n个骑士(骑士走日字,和马一样),之后如果存在一个点可以被4个骑士一步到达,那么就往这个格子上再放一个马,并且无限继续下去,直到不存在任意一个点可以被4个骑 ...
- Codeforces Round #518 (Div. 2): D. Array Without Local Maximums(DP)
题意: 有一个长度为n的序列,满足对于所有的a[x],与它相邻的两个元素a[x-1]和a[x+1]中至少有一个大于等于它,其中a[1]和a[n]当然只有一个相邻元素, 现在这个序列中有些数字被破坏了( ...
- 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 ...
- 模拟 Codeforces Round #249 (Div. 2) C. Cardiogram
题目地址:http://codeforces.com/contest/435/problem/C 1 /* 2 题意:给一组公式,一组数据,计算得到一系列的坐标点,画出折线图:) 3 模拟题:蛮恶心的 ...
- 模拟 Codeforces Round #297 (Div. 2) A. Vitaliy and Pie
题目传送门 1 /* 2 模拟:这就是一道模拟水题,看到标签是贪心,还以为错了呢 3 题目倒是很长:) 4 */ 5 #include <cstdio> 6 #include <al ...
- Codeforces Round #656 (Div. 3) F. Removing Leaves 贪心 + 模拟
传送门 文章目录 题意: 思路: 题意: 思路: 首先有一个贪心策略就是每次都找一个叶子节点最多的点,让后删掉他的kkk个叶子节点,现在我们就来考虑如何模拟这个过程. 我们整一个vector<s ...
- Codeforces Round #249 (Div. 2) (模拟)
Codeforces Round #249 (Div. 2) (模拟) C. Cardiogram time limit per test 1 second memory limit per test ...
- 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} ...
最新文章
- 计算机基础在小学的教学论文,小学基础教育论文范文
- smart-socket如何实现字符串通信
- ICCV 2013的人脸特征点检评测及代码
- LeetCode: 150:逆波兰表示法求值。
- Kafka MirrorMaker 跨集群同步工具
- 阿里巴巴超大规模 Kubernetes 基础设施运维体系介绍
- html与css重置代码,发个自己的CSS重置基础代码
- 挖矿仍然有利可图吗?
- 13. 面向对象的概述
- 前端开发工程师应该关注什么?
- 蓝鹰立德的SAP解决方案开启飞马模式(FMEA)
- 互联网日报 | 京东健康提交赴港上市招股书;荣耀联合美团推出“共享笔记本”服务;携程获第三方支付牌照...
- 实例003 输出名言
- Java架构师大型互联网高级技术视频教程
- Visual Studio 2017卸载不干净
- 【沉痛悼念】首届国医大师唐由之逝世 | 曾为毛主席治疗白内障
- linux 查看ko符号表,linux modprobe命令参数及用法详解--linux加载模块命令
- Windows XP注册表与驱动程序优化全集
- php利用飞信api给好友发短信
- 《牛客刷verilog》Part III Verilog企业真题
热门文章
- python基本代码教程-Python入门教程丨1300多行代码,让你轻松掌握基础知识点
- python画3d图-python之画三维图像
- python装饰器详解-Python装饰器基础详解
- python学习手册-Python 重点知识整理(基于Python学习手册第四版)
- python基本代码教程-python基础教程第三版源代码
- python自动化测试-Python自动化测试入门,看这一篇就足以
- python安装教程-Python 3.5安装教程
- python3入门经典100例-Python3入门经典100例
- linux向脚本传递参数,Linux 使用位置变量向脚本传递参数
- 在vue项目中导入element-ui