dfs一遍,维护当前连续遇到的喵的数量,然后剪枝,每个统计孩子数量判断是不是叶子结点。

#include<bits/stdc++.h>
using namespace std; const int maxn = 2e5+;
int a[maxn];
int head[maxn],nxt[maxn<<],to[maxn<<],ect; inline void addEdge(int u,int v)
{
to[ect] = v;
nxt[ect] = head[u];
head[u] = ect++;
} int ct[maxn],m,cnt;
void dfs(int u,int f)
{
if(a[u]) ct[u] = ct[f]+;
if(ct[u]>m) return;
int ch = ;
for(int i = head[u]; ~i ; i = nxt[i]){
int v = to[i];
if(v == f) continue;
ch++;
dfs(v,u);
}
if(!ch) { cnt++; }
} //#define LOCAL int main()
{
#ifdef LOCAL
freopen("in.txt","r",stdin);
#endif
memset(head,-,sizeof(head));
int n; scanf("%d%d",&n,&m);
for(int i = ; i <= n; i++) scanf("%d",a+i);
for(int i = ; i < n; i++){
int u,v; scanf("%d%d",&u,&v);
addEdge(u,v); addEdge(v,u);
}
dfs(,);
printf("%d",cnt);
return ;
}

最新文章

  1. EntityFramework.Extended 实现 update count+=1
  2. iOS cocoapods升级及问题
  3. iOS开发——高级技术精选OC篇&amp;Runtime之字典转模型实战
  4. Object C学习笔记23-继承,重写,重载
  5. System Services -&gt; Memory Management -&gt; About Memory Management
  6. 【转】修改xampp的mysql默认密码
  7. LeetCode FindMinimuminRotatedSorteArray &amp;&amp;FindMinimuminRotatedSorteArray2
  8. (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间
  9. linux enable命令学习
  10. javascript事件设计模式
  11. 第1阶段——u-boot分析之make指令(2)
  12. String 类
  13. 简单聊一聊那些svg的沿路径运动
  14. codeforces 975C Valhalla Siege
  15. Nginx 设置负载均衡
  16. 37-Arrays.sort() 由大到小排序 和 对象数组排序
  17. Eigen教程(7)
  18. python-docx操作word文件(*.docx)
  19. SpringMVC 多个数据源 配置多个事物管理器 Multiple Transaction Managers
  20. 编写 Target 检测 MSBuild / dotnet build 此次编译是否是差量编译

热门文章

  1. 优酷电视剧爬虫代码实现一:下载解析视频网站页面(4)补充: Java正则表达式Matcher.group(int group)相关类解析
  2. Linux 之问题集锦(一)
  3. C# 写 LeetCode easy #13 Roman to Integer
  4. &quot;Mysql has gone away&quot;的几种可能
  5. PJzhang:经典子域名爆破工具subdomainsbrute
  6. Codeforces Round #459 (Div. 2)The Monster[匹配问题]
  7. jenkins 找不到mvn 命令
  8. 洛谷P2513 [HAOI2009]逆序对数列
  9. java基础第九篇之final和内部类等
  10. 运用html常用标签和css定位等学做模仿百度导航页面