题目大意

一棵树,改变一些边的父亲,使得深度不超过k。

解题思路

我一开始就想到了贪心,结果莫名其妙的把这种方法给否决了,
然后考虑优化树形dp,然后优化失败⊙﹏⊙
贪心思路很简单,也很好感受出来,从下往上跑,每当到底下的深度大于k,将其断掉,连向根节点。

#include <cmath>
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <queue>
#include <map>
#include <bitset>
#include <set>
const int maxlongint=2147483647;
const int mo=1e9+7;
const int N=100005;
using namespace std;
int n,m,ans,deep[N],a[N];
int tot,nt[N*2],lt[N*2],to[N*2];
bool bz[N];
void link(int x,int y)
{nt[++tot]=lt[x];lt[x]=tot;to[tot]=y;
}
int dg(int x,int fa)
{deep[x]=deep[fa]+1;int mx=deep[x];for(int i=lt[x];i;i=nt[i]) mx=max(dg(to[i],x),mx);if(x==1) return 0;if(fa!=1 && mx-deep[x]+1==m) ans++,mx=0;return mx;
}
int main()
{scanf("%d%d",&n,&m);for(int i=1;i<=n;i++){scanf("%d",&a[i]);if(i!=1) link(a[i],i);}if(a[1]!=1) ans++;deep[0]=-1;dg(1,0);printf("%d",ans);
}

转载于:https://www.cnblogs.com/chen1352/p/9099508.html

【agc004d】Teleporter相关推荐

  1. 【solarwinds】【Orion】综述

    =================================================================================== [solarwinds][Ori ...

  2. 【CentOS】利用Kubeadm部署Kubernetes (K8s)

    [CentOS]利用Kubeadm部署Kubernetes (K8s)[阅读时间:约10分钟] 一.概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 三.具体实验流程 1 系统准 ...

  3. 【Spring】框架简介

    [Spring]框架简介 Spring是什么 Spring是分层的Java SE/EE应用full-stack轻量级开源框架,以IOC(Inverse Of Control:反转控制)和AOP(Asp ...

  4. 【C#】类——里式转换

    类是由面对对象程序设计中产生的,在面向结构的程序设计例如C语言中是没有类这个概念的!C语言中有传值调用和传址调用的两种方式!在c语言中,主方法调用方法,通过传递参数等完成一些操作,其中比较常用的的数据 ...

  5. 【C#】Out与ref是干什么的?

    关于return: 1.最后没有写 return 语句的话,表示程序正常退出 2.不需要返回值时,存在return的作用 例子 void main() {return; //return退出该程序的作 ...

  6. 【软件工程】RUP与软件开发5大模型

    软件开发的5大模型 1.瀑布模型:按照人的思维一步一步的开发下去,如果需求分析得当,每个阶段顺利,结果还不错! 2.快速原型模型:后来人们发现,自己不可能一下子就把所有的需求搞清楚,总是在开发的过程中 ...

  7. 【VB】学生信息管理系统5——数据库代码

    这次学生信息管理系统在代码的理解过程中遇到了一些问题.总结如下: 1. sql server的安装过程各个步骤的意思.在安装SQL Server的时候按照网上的步骤,我觉得这个需要学完整个数据库再返回 ...

  8. 白化(预处理步骤)【转】

    白化(预处理步骤)[转] 介绍 我们已经了解了如何使用PCA降低数据维度.在一些算法中还需要一个与之相关的预处理步骤,这个预处理过程称为白化.举例来说,假设训练数据是图像,由于图像中相邻像素之间具有很 ...

  9. 【Tensorflow】tf.nn.atrous_conv2d如何实现空洞卷积?膨胀卷积

    介绍 关于空洞卷积的理论可以查看以下链接,这里我们不详细讲理论: 1.Long J, Shelhamer E, Darrell T, et al. Fully convolutional networ ...

最新文章

  1. IVs提取合并工具ivstools
  2. 黑色星期五,外区亚马逊技嘉 GTX 1080 折合约3870元人民币
  3. linux 虚拟机扩展硬盘后扩展到分区
  4. Android 的 dex2jar 和 jd-gui 反编译 apk 源代码
  5. SHOW INDEX FROM 表名,查看mysql表中有哪些索引
  6. Lync Server外部访问系列PART4:部署反向代理
  7. 记在windows上MySQL8.0安装过程中遇到的问题及解决方案
  8. 实现关于跨二级域名和1.1和2.0版.net Forms身份验证体制的问题和解决办法.
  9. MATLAB2017b libsvm安装教程
  10. 最强内网穿透工具frp
  11. codevs2822 爱在心中(tarjan求缩点的度)
  12. 用Python实现温度转换程序
  13. Scratch角色的绘制与中心点
  14. 手提电脑亮度不能调节,亮度调节按钮变灰,找不到调节亮度按钮
  15. 自动弹图片html,HTML图片预览弹出层实现
  16. 电影票房多视图可视化(echarts)
  17. 实战EM算法与图像分割
  18. D3D9 HOOK [透视原理]
  19. Windows-空硬盘安装系统
  20. 防火墙——双机热备理论讲解

热门文章

  1. 生产数据库更新忙,没有超时
  2. Visual Studio提示——使用数据提示
  3. linux运行多个c文件路径,linux c的连接库和怎么同时编译多个源程序
  4. python输出引号内的变量值_引号中的Python变量值
  5. angular4更改表单中显示的值_关于angular4中FormBuilder重新赋值时发生的问题
  6. 怎么把竖列中的数相加python_关于python中pandas.DataFrame对行与列求和及添加新行与列示例代码...
  7. python中backward_pytorch的梯度计算以及backward方法详解
  8. php phpredis,PHP_PHP中redis的用法深入解析,redis是一个key-value存储系统。 - phpStudy...
  9. python圆柱体_python绘制圆柱体的方法
  10. vs code写ipynb怎么添加目录_用Django写招聘网站2——用户系统