分析

一层一层把叶子去掉

看最多能去掉多少层即可

代码

#include<bits/stdc++.h>
using namespace std;
int vis[],du[],fa[],n,m,ans;
int head[],to[],nxt[],cnt;
int q[],le,ri;
inline int ra(){
int x=;char s=getchar();
while(!isdigit(s))s=getchar();
while(isdigit(s))x=(x<<)+(x<<)+(s-''),s=getchar();
return x;
}
inline void add(int x,int y){
nxt[++cnt]=head[x];
head[x]=cnt;
to[cnt]=y;
nxt[++cnt]=head[y];
head[y]=cnt;
to[cnt]=x;
}
inline void dfs(int x,int f){
fa[x]=f;
for(int i=head[x];i;i=nxt[i])
if(to[i]!=f)dfs(to[i],x);
}
int main(){
int i,j,k;
n=ra(),k=ra();
k=n-k;
for(i=;i<n;++i){
int x,y;
x=ra(),y=ra();
du[x]++,du[y]++;
add(x,y);
}
dfs(,);
le=;
for(i=;i<=n;++i)if(du[i]==)q[++ri]=i,vis[i]=;
while(ri>=le){
int x=q[le];
le++;
k--;
ans=max(ans,vis[x]);
if(!k)break;
for(i=head[x];i;i=nxt[i]){
if(du[to[i]]<=)continue;
du[to[i]]--;
vis[to[i]]=max(vis[to[i]],vis[x]+);
if(du[to[i]]==)q[++ri]=to[i];
}
}
printf("%d\n",ans);
return ;
}

EZOJ #389点分治好题的更多相关文章

  1. (模板)luoguP3806(树上点分治模板题)

    点分治的写法1: 题目链接:https://www.luogu.org/problem/P3806 题意:给出一颗带边权的树,结点数n<=1e4,每条边有权值<=1e4,有m组询问(m&l ...

  2. COGS 577 蝗灾 [CDQ分治入门题]

    题目链接 昨天mhr神犇,讲分治时的CDQ分治的入门题. 题意: 你又一个w*w正方形的田地. 初始时没有蝗虫. 给你两个操作: 1. 1 x y z: (x,y)这个位置多了z只蝗虫. 2. 2 x ...

  3. poj1741_Tree(树的点分治入门题)

    题目链接:poj1741_Tree 题意: 给你一颗n个节点的树,每条边有一个值,问有多少点对(u,v),满足u->v的最短路径小于k. 题解: 典型的树的分治,板子题. #include< ...

  4. POJ1741 Tree(树的点分治基础题)

    Give a tree with n vertices,each edge has a length(positive integer less than 1001).Define dist(u,v) ...

  5. bzoj3262陌上花开 cdq分治入门题

    Description 有n朵花,每朵花有三个属性:花形(s).颜色(c).气味(m),又三个整数表示.现要对每朵花评级,一朵花的级别是它拥有的美丽能超过的花的数量.定义一朵花A比另一朵花B要美丽,当 ...

  6. 打铁选手的 CDQ分治 刷题记录

    BZOJ3262 模板题,三位偏序. 注意第一维排完序之后再给二三维排序的时候还是要考虑下第一维的:如果二三维都相等的话第一维小的要在前面 代码: #include <bits/stdc++.h ...

  7. 洛谷 P1429 平面最近点对(加强版) (分治模板题)

    题意:有\(n\)个点对,找到它们之间的最短距离. 题解:我们先对所有点对以\(x\)的大小进行排序,然后分治,每次左右二等分递归下去,当\(l+1=r\)的时候,我们计算一下距离直接返回给上一层,若 ...

  8. 【BZOJ】4311: 向量(线段树分治板子题)

    题解 我们可以根据点积的定义,垂直于原点到给定点构成的直线作一条直线,从正无穷往下平移,第一个碰到的点就是答案 像什么,上凸壳哇 可是--动态维护上凸壳? 我们可以离线,计算每个点能造成贡献的一个询问 ...

  9. 树的点分治 板题 Luogu P3806

    给定一棵有n个点的树 询问树上距离为k的点对是否存在. AC code: #include<bits/stdc++.h> using namespace std; const int MA ...

随机推荐

  1. 工具 - MSF

    #ms17- use auxiliary/scanner/smb/smb_ms17_010 - exploit use exploit/windows/smb/ms17_010_eternalblue ...

  2. linux如何处理多连接请求?

    1.TCP迭代服务器程序 这种方式就是服务器同一时间只处理一个客户端的请求,这个请求处理完以后才转向下一个客户请求.当然这样的服务器程序比较少见,这就像一个公司只能一次处理一个客户,后面的客户只能等待 ...

  3. Codeforces - 1199D - Welfare State - 单调栈 / 线段树

    https://codeforc.es/contest/1199/problem/D 其实后来想了一下貌似是个线段树的傻逼题. 单调栈是这样思考的,每次单点修改打上一个最终修改的时间戳.每次全体修改就 ...

  4. redis关闭和启动

    redis关闭 到redis节点目录下执行如下命令 redis-cli -p 端口号 shutdown redis启动 ./redis-server 参数 参数:redis.conf文件全路径 需要到 ...

  5. 在navcat中清空数据后,设置id归零方法

    写后台完成后,需要清空Mysql数据库中的测试数据,但是后面新增的数据,一直是以原来所删除数据的最大id为增量基本,比如,对于一些id敏感的项,十分不便,如图 原有10条数据,清空后,新增一两条,手动 ...

  6. 图像函数 imagecreatetruecolor()和imagecreate()的异同点

    共同点:这两个函数都是用于创建画布 区别: 1.不同的是创建画布和为画布填充颜色的流程不一样; 用imagecreatetruecolor(int x,int y)创建的是一幅大小为 x和 y的图像( ...

  7. ulimit 管理系统资源

    具体的 options 含义以及简单示例可以参考以下表格. 选项 含义 例子 -H 设置硬资源限制,一旦设置不能增加. ulimit – Hs 64:限制硬资源,线程栈大小为 64K. -S 设置软资 ...

  8. ES常见错误

    1. Request cannot be executed; I/O reactor status: STOPPED RestClient被关闭了 2. SpringBoot启动后 Stopping ...

  9. xftp xshell 个人下载官网

    https://www.netsarang.com/zh/xftp-download/

  10. Linux忘记root密码解决方案

    忘记Linux root密码时,只需重启Linux系统,然后引导进入Linux的单用户模式(init 1),由于单用户模式不需要输入登陆密码,因此,可直接登陆系统,修改root密码即可解决问题.需要说 ...