题面在这里!

挺智障的一个二分。。。我还写了好久QWQ,退役算啦

题解见注释。。。

/*先对每个点记录 向子树外的最长路 和 向子树内最长路,然后二分。二分的时候枚举链的LCA直接做就好啦。
*/
#include<bits/stdc++.h>
#define ll long long
using namespace std;
#define pb push_back
const int N=100005,B=2333333;inline int read(){int x=0; char ch=getchar();for(;!isdigit(ch);ch=getchar());for(;isdigit(ch);ch=getchar()) x=x*10+ch-'0';return x;
}int to[N*2],ne[N*2],val[N*2],num,mid,d[N];
int hd[N],n,m,f[N],dn[N],dw[N],k,ans;
bool flag;inline void add(int x,int y,int z){to[++num]=y,ne[num]=hd[x],hd[x]=num,val[num]=z;
}void fdfs(int x,int fa){for(int i=hd[x];i;i=ne[i]) if(to[i]!=fa)fdfs(to[i],x),dn[x]=max(dn[x],dn[to[i]]+val[i]);
}void sdfs(int x,int fa,int L){int D=d[x],qz[D+1],hz[D+1];dw[x]=qz[0]=hz[0]=L;for(int i=hd[x],j=0;i;i=ne[i]) if(to[i]!=fa){j++,qz[j]=hz[j]=dn[to[i]]+val[i];}for(int i=1;i<D;i++) qz[i]=max(qz[i],qz[i-1]);hz[D]=0;for(int i=D-1;i;i--) hz[i]=max(hz[i],hz[i+1]);for(int i=hd[x],j=0;i;i=ne[i]) if(to[i]!=fa){j++,sdfs(to[i],x,max(qz[j-1],hz[j+1])+val[i]);}
}void dfs(int x,int fa){int M=0,C=0;for(int i=hd[x];i;i=ne[i]) if(to[i]!=fa){dfs(to[i],x);if(dn[to[i]]+val[i]>mid){if(!M) M=f[to[i]];else if(!C) C=f[to[i]];else{ M=C=k; break;}}}f[x]=C?k:M+1;flag|=(dw[x]<=mid&&M+C<k);
}inline bool solve(){memset(f,0,sizeof(f)),flag=0;dfs(1,0); return flag;
}int main(){n=read(),k=read();for(int i=1,uu,vv,ww;i<n;i++){uu=read(),vv=read(),ww=read();add(uu,vv,ww),add(vv,uu,ww);d[uu]++,d[vv]++;}fdfs(1,0),d[1]++,sdfs(1,0,0);int L=0,R=1e9;while(L<=R){mid=L+R>>1;if(solve()) ans=mid,R=mid-1;else L=mid+1;}printf("%d\n",ans);return 0;
}

  

转载于:https://www.cnblogs.com/JYYHH/p/9280904.html

CodeForces - 1004E Sonya and Ice Cream相关推荐

  1. 【dfs+理解题意+构造】【待重做】codeforces E. Ice cream coloring

    http://codeforces.com/contest/805/problem/E [题意] 染色数是很好确定,最少染色数是max(si)(最小为1,即使所有的si都为0,这样是单节点树形成的森林 ...

  2. CodeForces - 805E - Ice cream coloring dfs+贪心

    题意:有一棵具有 n 个节点的树,每个节点代表一个集合,表示集合内两两元素的颜色不同,同时保证集合中拥有某个元素的所有的节点附带着边提取出来,能够形成一个连通图,即不可能出现有三个节点 v1,v2,v ...

  3. Gym 101194D Ice Cream Tower

    被一道数位DP折磨得欲仙欲死之后,再做这道题真是如同吃了ice cream一样舒畅啊 #include<bits/stdc++.h> using namespace std; #defin ...

  4. Android P (2)---Android 9.0 “Pistachio Ice Cream”新功能和特性

    据有关消息报道,下一版本安卓(9.0)的初步代号已经确定为"Pistachio Ice Cream"(开心果冰淇淋),并将带来极大的功能变化. 当然了按照Google的惯例,如此长 ...

  5. Codeforces 1080E - Sonya and Matrix Beauty - Manacher

    Codeforces 1080E - Sonya and Matrix Beauty - Manacher 题解链接 https://lucien.ink 题目链接 https://codeforce ...

  6. Android 9.0 “Pistachio Ice Cream”新功能和特性

    热文导读 | 点击标题阅读 一份年薪30万的Android面试宝典,附答案 吊炸天!74款APP完整源码! 一个 IT 青年北漂四年的感悟 来自:开源中国 内容整理自 快科技:http://news. ...

  7. Android 4.0(Ice Cream Sandwich, 简称ICS,冰激凌三明治)

    Android 系统4.0 命名为 Ice Cream Sandwich(简称ICS,冰淇淋三明治),是谷歌发布新一代操作系统.Android4.0 拥有十大重点新特性.集成谷歌电视和Chrome O ...

  8. CodeForces - 1004B - Sonya and Exhibition(纯思维题)

    题目链接: http://codeforces.com/problemset/problem/1004/B 题目: Sonya decided to organize an exhibition of ...

  9. Codeforces 1004F Sonya and Bitwise OR (线段树)

    题目链接 https://codeforces.com/contest/1004/problem/F 题解 这种水题都不会做了怎么.. 考虑一个序列的前缀 \(\text{or}\) 值只会变化 \( ...

最新文章

  1. python爬取哔哩哔哩视频_荐爬取哔哩哔哩中的cosplay小视频
  2. AI换脸在电竞圈火了!大司马PDD大秀肌肉辣舞,网友:上头,流鼻血了
  3. 调度流程图_Flink 实现Locality 模式调度
  4. 项目开发中常用JS表单取值方法
  5. 深入理解 Ribbon-Hystrix-Feign 三者之间的关系(一)
  6. Android图片加载框架之(Glide和Picasso的区别,Glide的简单使用)
  7. 《重返人类演化现场》阅读笔记
  8. php中的空格键,使用PHP使用数组键中的空格解析Json响应
  9. windows下用C/C++访问MySQL数据库
  10. python中列表、元组、字符串都属于有序序列_列表、元组、字符串是Python的有序序列。...
  11. 美国参议院紧急通过关键基础设施网络安全法案
  12. 火狐 firefox proxy moz=proxy:// 407错误 解决办法
  13. nginx虚拟机无法访问解决
  14. 车牌识别用php算法,车牌识别算法实现及其代码实现之一:车牌区域检测
  15. i5插了电信卡显示无服务器,黑解iphone用5g电信卡为什么没有信号?
  16. 解决Ctrl+鼠标左键点击后怎么返回
  17. java mpp转图片,Java使用mpxj导入.mpp格式的Project文件(甘特图)
  18. matlab马赫带,学习实现马赫带效果
  19. 1.2 电流和电压的参考方向
  20. c++实验2:6-4 求余弦函数近似值

热门文章

  1. Excel将任意数字替换为空白
  2. 快来让你的桌面惊艳起来,就差你了
  3. 怎么修改tomcat端口
  4. 回民检察院“四个注重”加强信息安全保密工作
  5. 主流人工智能平台的设计和思考
  6. 【毕业N年系列】 毕业第五年
  7. aqr资本二十年精选二十篇_2016年3月:前10名和编辑精选
  8. 英语笔记12.29.2021-2
  9. 如何将Excel中隐藏的列显示出来
  10. Excel 表 使用VBA 隐藏不需要的列