BZOJ 2097: [Usaco2010 Dec]Exercise 奶牛健美操 二分 + 贪心 + 树上问题
2024-09-05 19:53:25
Code:
#include<bits/stdc++.h>
using namespace std;
#define setIO(s) freopen(s".in","r",stdin)
#define maxn 1000000
int n,S,edges,mid,cnt;
int hd[maxn],to[maxn<<1],nex[maxn<<1],dis[maxn];
void add(int u,int v)
{
nex[++edges]=hd[u],hd[u]=edges,to[edges]=v;
}
void dfs(int u,int ff)
{
if(cnt>S) return;
int now=0;
for(int i=hd[u];i;i=nex[i])
{
int v=to[i];
if(v==ff) continue;
dfs(v,u);
if(now+dis[v] > mid)
{
++cnt;
now=min(now, dis[v]);
}
else now=max(now, dis[v]);
}
dis[u]=now+1;
}
int check()
{
cnt=0;
dfs(1,0);
return cnt<=S;
}
int main()
{
// setIO("input");
int i,j;
scanf("%d%d",&n,&S);
for(i=1;i<n;++i)
{
int a,b;
scanf("%d%d",&a,&b);
add(a,b),add(b,a);
}
int l=1,r=n,ans=0;
while(l<=r)
{
mid=(l+r)>>1;
if(check()) ans=mid, r=mid-1;
else l=mid+1;
}
printf("%d\n",ans);
return 0;
}
最新文章
- 20160712001 SQL server R2 更名
- Sparse Filtering 学习笔记(一)网络结构与特征矩阵
- python函数的参数
- About the Storage allocation
- C#sqlbulkcopy的优化
- hdu 1095 A+B for Input-Output Practice (VII)
- ELK初学搭建(logstash)
- int? 参数是这个的时候 是可以传入null的 而int的就不行
- mac系统连接android电话
- Java web项目综合练习(Estore)
- mysql查询order by 指定字段排序
- Assignments---(贪心)
- Background removal with deep learning
- CSS知识点(三)
- ajax参数传递之[HttpGet]/[HttpPost]/[HttpPut]/[HttpDelete]请求
- (转)C#串口SerialPort常用属性方法
- eclipse maven jdk全局设置
- CentOS 7 安装Docker CE
- HDU 5229 ZCC loves strings 博弈
- DNS域名解析协议