在DoubleDog成功辨别出来种族之后,旁边出现了一群小黄鸭和一只wangyisong1996。

wangyisong1996拦住了这些DoubleDog,说他可以给他们以帮助,但是他们需要先做出来一道题。

wangyisong1996有一颗$n$个节点的有根树,根节点为$1​$,他想在这颗树上跑树链剖分。

他已经实现了除了树链剖分以外的其他所有东西,现在他想要知道最优的一种树链剖分方案。

树链剖分的时间复杂度如下:

定义树上的一个树链剖分为一种将边集划分为重边和轻边的方法使得每个节点和他的儿子之间最多只有一条重边。

在下面的表示中,我们将重边称为$0$边,轻边称为$1$边。

定义树上的$(x,y)​$序列为从$x​$到$y​$依次经过的每一条边的类型拼接而成的一个$01​$串$(x!=y)$

对于一个长度为$l​$的全$1​$串,我们设$f(x)=l​$

对于一个长度为$l​$的全$0​$串,我们设$f(x)=\left\lceil\log_2l\right\rceil+1​$

对于一个01串,我们有$f(x)=\sum f(每一个极大连续全0/1子串)​$

例如:$f('0011101')=(1+1)+3+(0+1)+1=7$

对于一个轻重边划分方案$T$,我们有$O(T)=\sum^{n}_{i=2}f((1,i))$

现在wangyisong1996想要知道所有可行的树链剖分方案中,时间复杂度(也就是O(方案))最小的值是多少

输入格式

第一行一个正整数$n$,表示有根树的节点数。

接下来$n-1$行,每一行两个数字$x,y$,表示树上的一条连接$x,y$的边。

输出格式

一行一个数字,表示答案。

样例一

input

7

1 2

2 3

2 4

2 5

2 6

2 7

output

11

explanation

将边$(1,2),(2,3)$设为重边:

此时$f(2)=1,f(3)=f(4)=f(5)=f(6)=f(7)=2$,可以证明这是最优解。

样例二至样例四

见样例数据下载。

限制与约定

Subtask 1 (5 分): $n\le 20$,内存限制$\texttt{1GB}$

Subtask 2 (15 分): $n\le 200$,内存限制$\texttt{1GB}$

Subtask 3 (15 分): $n\le 5000$,内存限制$\texttt{1GB}$

Subtask 4 (30 分): $n\le 100000$,内存限制$\texttt{1GB}$

Subtask 5 (35 分): $n\le 100000$,内存限制$\texttt{200MB}$

时间限制:$\texttt{3s}$

下载

小黄鸭c语言程序代码,新年的小黄鸭 - 题目 - Universal Online Judge相关推荐

  1. C语言 程序代码编写规范

    前言 一个好的程序编写规范是编写高质量程序的保证.清晰.规范的源程序不仅仅是方便阅读,更重要的是能够便于检查错误,提高调试效率,从而最终保证软件的质量和可维护性. 说明 l 本文档主要适用于刚刚开始接 ...

  2. c语言程序前言,C语言 程序代码编写规范前言

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 一个好的程序编写规范是编写高质量程序的保证.清晰.规范的源程序不仅仅是方便阅读,更重要的是能够便于检查错误,提高调试效率,从而最终保证软件的质量和可维护性 ...

  3. c语言程序报告的前言,C语言 程序代码编写规范前言

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 一个好的程序编写规范是编写高质量程序的保证.清晰.规范的源程序不仅仅是方便阅读,更重要的是能够便于检查错误,提高调试效率,从而最终保证软件的质量和可维护性 ...

  4. 完整简单c语言程序代码,一些简单的C语言程序代码.docx

    一些简单的C语言程序代码 由键盘任意输入1个4位数整数,分别输出其中的个位.十位.百位.千位./* expe 3-10 */#include #include void main(void){ int ...

  5. 【C语言】分享一些个人C语言程序代码[大一下集合]

    分享一些个人C语言程序代码[大一下集合] 突然想整理下之前写的一些小程序 2020.1-2020.6 大一下学期的更全面的作品的介绍和展示 长期更新[带链接的即为已更新] 大一大二期间写的10余个有趣 ...

  6. WeChat之小工具:基于C++程序代码设计的查看微信撤销、撤回消息(包括文本、图片、视频等)GUI小工具

    WeChat之小工具:基于C++程序代码设计的查看微信撤销.撤回消息(包括文本.图片.视频等)GUI小工具 导读      哈哈,千万不要给程序猿随便发信息,程序猿认真起来,别说你发的微信信息,就连你 ...

  7. c语言p1-melepeo,学生选课系统c语言程序代码

    学生选课系统c语言程序代码 (25页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.90 积分 #include #includestruct cou ...

  8. python函数和代码复用思维导图_Python语言程序---代码复用与函数递归(二)

    Python语言程序---代码复用与函数递归(二) 函数递归 在函数定义中,调用函数自身的方式就是递归. 递归并不是程序设计的专有名词,在数学中也广泛存在.例如:n!.在n!中,我们定义当n=0时,n ...

  9. 温控仪C语言程序,模糊PID控制温控系统设计C语言程序代码

    <模糊PID控制温控系统设计C语言程序代码>由会员分享,可在线阅读,更多相关<模糊PID控制温控系统设计C语言程序代码(17页珍藏版)>请在人人文库网上搜索. 1.*模糊PID ...

最新文章

  1. NHibernate之旅(11):探索多对多关系及其关联查询
  2. 2020应届生「求职图鉴」,扎心了!
  3. cuda 0 not supported xla
  4. Python:条件判断
  5. 【软件开发底层知识修炼】二十三 ABI-应用程序二进制接口三之深入理解函数栈帧的形成与摧毁
  6. 搜狗浏览器怎么保存账号密码 搜狗浏览器保存账号密码教程
  7. 判断成绩linux程序编程,程序输入输出 ,编写判断成绩的程序
  8. 华中数控机器人编程循环三次_华中数控:公司在数控技术上不断创新突破 在技术方面处于国内领先水平...
  9. php json_encode 中文乱码解决方法
  10. python之路——作业:Select FTP(仅供参考)
  11. C语言制作简单计算器
  12. 如何在EXCEL中只复制可见单元格(忽略隐藏行/列)
  13. 【OCC学习20】使用TKSTL输出stl格式文件
  14. 电脑分屏工具 v1.22
  15. 能让你「情商暴涨」的6个聊天小技巧
  16. 码教授|面试官:你还有什么要问我的吗?
  17. TEM测试常见问题及解答(二)
  18. ip段各个号段的含义
  19. Elasticsearch6.8开发指南-第三章-设置Elasticsearch
  20. HDU 3374 最小 / 大表示法

热门文章

  1. 一个类中可以没有main方法_一个月可以暴瘦二十斤的减肥方法
  2. ❤️Spring注入集合❤️(建议收藏)
  3. java加法运算器界面_Java 接口实现计算器加减乘除(字符交互界面)
  4. 我所期待的vs2007
  5. 【编译原理笔记11】中间代码生成:类型表达式,声明语句的翻译
  6. 【编译原理笔记08】语法制导翻译:语法制导定义,SSD的求值顺序,S属性定义与L属性定义
  7. 【转】暴露问题是对项目验收最起码的尊重!
  8. mysql库垂按照模块_前任都能看懂的分库分表方案
  9. ora 所有表记录数_ORACLE中如何查找定位表最后DML操作的时间小结
  10. nginx 新上线、机房白名单