1. //论全局变量的杀伤力....QAQ
    #include<cstdio>
  2. #include<iostream>
  3. #include<cstdlib>
  4. #include<algorithm>
  5. #include<vector>
  6. #define MAXN 100005
  7. using namespace std;
  8. int f[MAXN];
  9. struct Tree
  10. {
  11. int to,next;
  12. }c[MAXN<<];
  13. vector<int>son[MAXN];
  14. int head[MAXN],t;
  15. inline void add(int x,int y)
  16. {
  17. c[++t].to=y;
  18. c[t].next=head[x];
  19. head[x]=t;
  20. c[++t].to=x;
  21. c[t].next=head[y];
  22. head[y]=t;
  23. }
  24. int n,s,mid;
  25. int comp(const int x,const int y)
  26. {
  27. return f[x]>f[y];
  28. }
  29. void Dfs(int p,int fa)
  30. {
  31. for(int i=head[p];i;i=c[i].next)
  32. if(c[i].to!=fa)
  33. {
  34. son[p].push_back(c[i].to);
  35. Dfs(c[i].to,p);
  36. }
  37. son[p].push_back();
  38. }
  39. void dfs(int p,int &x,int fa)
  40. {
  41. for(int i=head[p];i;i=c[i].next)
  42. if(c[i].to!=fa)
  43. dfs(c[i].to,x,p);
  44. sort(son[p].begin(),son[p].end(),comp);
  45. int i=;
  46. for(;i<son[p].size()-;i++)
  47. if(f[son[p][i]]+f[son[p][i+]]>mid)
  48. x++;
  49. else
  50. break;
  51. f[p]=f[son[p][i]]+;
  52. }
  53. int main()
  54. {
  55. scanf("%d%d",&n,&s);
  56. for(int i=;i<n;i++)
  57. {
  58. int x,y;
  59. scanf("%d%d",&x,&y);
  60. add(x,y);
  61. }
  62. Dfs(,);
  63. int l=,ans=n-,r=n-;
  64. while(l<=r)
  65. {
  66. mid=(l+r)>>;
  67. int x=;
  68. dfs(,x,);
  69. if(x<=s)
  70. ans=mid,r=mid-;
  71. else
  72. l=mid+;
  73. }
  74. printf("%d",ans);
  75. return ;
  76. }

BZOJ2097: [Usaco2010 Dec]Exercise 奶牛健美操 贪心+伪树dp+二分的更多相关文章

  1. BZOJ2097 [Usaco2010 Dec]Exercise 奶牛健美操 贪心

    题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=2097 题解 显然二分一个 \(mid\) 表示每一块的直径长度的最大值,求最少需要多少连通块. ...

  2. [bzoj2097][Usaco2010 Dec]Exercise 奶牛健美操_贪心_树形dp_二分

    Exercise bzoj-2097 Usaco-2010 Dec 题目大意:题目链接 注释:略. 想法:题目描述生怕你不知道这题在考二分. 关键是怎么验证?我们想到贪心的删边. 这样的策略是显然正确 ...

  3. BZOJ2097: [Usaco2010 Dec]Exercise 奶牛健美操

    n<=100000的树,砍S<n条边,求砍完后S+1棵树的最大直径的最小值. 树的直径要小小哒,那考虑一棵子树的情况吧!一棵子树的直径,就是子树根节点各儿子的最大深度+次大深度.就下面这样 ...

  4. [Usaco2010 Dec]Exercise 奶牛健美操

    [Usaco2010 Dec]Exercise 奶牛健美操 题目 Farmer John为了保持奶牛们的健康,让可怜的奶牛们不停在牧场之间 的小路上奔跑.这些奶牛的路径集合可以被表示成一个点集和一些连 ...

  5. BZOJ_2097_[Usaco2010 Dec]Exercise 奶牛健美操_二分答案+树形DP

    BZOJ_2097_[Usaco2010 Dec]Exercise 奶牛健美操_二分答案+树形DP Description Farmer John为了保持奶牛们的健康,让可怜的奶牛们不停在牧场之间 的 ...

  6. 【bzoj2097】[Usaco2010 Dec]Exercise 奶牛健美操 二分+贪心

    题目描述 Farmer John为了保持奶牛们的健康,让可怜的奶牛们不停在牧场之间 的小路上奔跑.这些奶牛的路径集合可以被表示成一个点集和一些连接 两个顶点的双向路,使得每对点之间恰好有一条简单路径. ...

  7. BZOJ 2097: [Usaco2010 Dec]Exercise 奶牛健美操 二分 + 贪心 + 树上问题

    Code: #include<bits/stdc++.h> using namespace std; #define setIO(s) freopen(s".in",& ...

  8. BZOJ——T 2097: [Usaco2010 Dec]Exercise 奶牛健美操

    http://www.lydsy.com/JudgeOnline/problem.php?id=2097 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit:  ...

  9. bzoj 2097: [Usaco2010 Dec]Exercise 奶牛健美操【二分+树形dp】

    二分答案,然后dp判断是否合法 具体方法是设f[u]为u点到其子树中的最长链,每次把所有儿子的f值取出来排序,如果某两条能组合出大于mid的链就断掉f较大的一条 a是全局数组!!所以要先dfs完子树才 ...

随机推荐

  1. java中方法的参数传递机制_一个对象被当作参数传递到一个方法后

    一个例子: 在Boy.java类中 在Girl.java类中      在marry方法中的this指的是这个方法所属的对象的引用,在这里指的是girl这个对象 在BoyGirlTest.java测试 ...

  2. mysql5.7.19安装报错 无法定位程序输入点

    https://blog.csdn.net/t876587201/article/details/79503688

  3. react-router 4.0中跳转失灵

    在https://github.com/ReactTraining/history文档中,跳转是 用这种方法,但是,用了之后就存在这么一个问题,网址换了但是页面并没有刷新. 查了资料后,history ...

  4. js数组长度

    js数组长度,一般使用length 属性即可获取,但这个数组是个对象则只能使用以下方式 var t=typeof o; var length=0; if(t=='string'){ length=o. ...

  5. linux ln 建立软链接-- 基于dubbo-zookeeper服务的 服务jar 引用公共的 lib

    对于ln命令网上有很多的教程,这里不再复述, 其基本目的是:多个文件夹公用一个文件夹的里的文件. 其基本命令格式: ln [option] source_file dist_file (source_ ...

  6. 【转】Ubuntu 14.04下Django+MySQL安装部署全过程

    一.简要步骤.(阿里云Ubuntu14.04) Python安装 Django Mysql的安装与配置 记录一下我的部署过程,也方便一些有需要的童鞋,大神勿喷~ 二.Python的安装 由于博主使用的 ...

  7. 【APUE】Chapter3 File I/O

    这章主要讲了几类unbuffered I/O函数的用法和设计思路. 3.2 File Descriptors fd本质上是非负整数,当我们执行open或create的时候,kernel向进程返回一个f ...

  8. coreos install megacli

    基于官方的coreos ramdisk安装dell raid管理工具,其版本为debian8 jessie root@c64c7df05677:/# more /etc/apt/sources.lis ...

  9. Regularization method for machine learning

    Regularization method(正则化方法) Outline Overview of Regularization L0 regularization L1 regularization ...

  10. npm 版本问题

    STF之问题篇 https://yq.aliyun.com/articles/221602 装完成后输入stf doctor查看工具依赖是否正确,安装教程可以参考我之前写的,这里不再多说,直接说问题. ...