BestCoder Round #53 (div.1)
Problem A:
题目大意:
给出以节点1为根的一棵树A,判断它是否是特殊的。一棵树是特殊的当且仅当不存在和它不完全相同的一棵树B,使得A中点i到点1的距离和B中相等。
题解:
假设一个点x的深度是d,它的父亲是y,如果存在一个深度为d-1的点z,那么把x从y下面移到z下面就可以得到树B了。所以求出每个深度的点的个数,只有当所有深度的点的个数都为1,最大深度的点的个数任意的时候 树是特殊的。
Problem B:
题目大意:
给出N个点N条边的无向图判断是否存在哈密顿路。 N<=1000.
题解:
一开始没看到边也是N条,然后去各种百度哈密顿路的求法......
我的做法是:
先去掉重边和自环,然后判断连通性.如果不连通那么肯定不存在。如果连通,那么剩下的只可能是N-1条边或者N条边。
考虑N-1条边的情况,是一棵树,草稿纸上画一下可以发现所有点的度数必须小于等于2才有哈密顿回路。
考虑N条边的情况,是一棵树上加了一条边。所以枚举删去一条边,然后用N-1条边时的判断方法搞。复杂度O(N),但是有100组数据,所以TLE了。
优化:在连通图图的前提下,如果存在哈密顿路,肯定是一条链上加了一条边的样子。所以最多有2个点的度数是3,其他点的度数小于等于2. 而且如果所有点的度数都小于等于2那么一定存在。 所以好多case就可以直接判断了。 不是很完美,但是还是水过了。。
官方题解是从度数最小的点开始DFS,复杂度就是O(N)的。不知道为什么。
Problem C:
有一棵nn个节点的树。令1号点为根且令d_idi为1号点到ii号点的距离。 选出至少两个节点。显然,一共有2^n-n-12n−n−1种选取的方案。等概率的随机选取一种方案。接着,令ff为选取的点中d_idi的最大值,gg为选取点中d_idi的次大值(ff可能等于gg)。 最后要知道\frac{(f+1)(g+1)}{f+1+g+1}f+1+g+1(f+1)(g+1)的期望值。 N《=100000 题解:
先求出距离,然后排序,枚举最大值v[j]和次大值v[i], 当 j-i>=65的时候 概率就很小了,分母是2^(n-i+1) 级别的, j-i>=60的时候 就不必计算了。 和之前CF的一道题差不多。 A了3题拿到了Rank 5. 好开心。
BestCoder Round #53 (div.1)的更多相关文章
- hdu 5424 Rikka with Graph II (BestCoder Round #53 (div.2))(哈密顿通路判断)
http://acm.hdu.edu.cn/showproblem.php?pid=5424 哈密顿通路:联通的图,访问每个顶点的路径且只访问一次 n个点n条边 n个顶点有n - 1条边,最后一条边的 ...
- HDU 5432 Rikka with Tree (BestCoder Round #53 (div.2))
http://acm.hdu.edu.cn/showproblem.php?pid=5423 题目大意:给你一个树 判断这棵树是否是独特的 一颗树是独特的条件:不存在一颗和它本身不同但相似的树 两颗树 ...
- 哈密顿图 BestCoder Round #53 (div.2) 1003 Rikka with Graph II
题目传送门 题意:判断是否为哈密顿图 分析:首先一种情况是不合法的:也就是度数为1的点超过2个:合法的有:,那么从度数为1的点开始深搜,如果存在一种走法能够走完n个点那么存在哈密顿路 收获:学习资料 ...
- BestCoder Round #69 (div.2) Baby Ming and Weight lifting(hdu 5610)
Baby Ming and Weight lifting Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K ( ...
- BestCoder Round #68 (div.2) tree(hdu 5606)
tree Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submis ...
- BestCoder Round #11 (Div. 2) 题解
HDOJ5054 Alice and Bob Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/O ...
- hdu5635 BestCoder Round #74 (div.2)
LCP Array Accepts: 131 Submissions: 1352 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 13 ...
- hdu 5636 搜索 BestCoder Round #74 (div.2)
Shortest Path Accepts: 40 Submissions: 610 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: ...
- hdu5634 BestCoder Round #73 (div.1)
Rikka with Phi Accepts: 5 Submissions: 66 Time Limit: 16000/8000 MS (Java/Others) Memory Limit: ...
随机推荐
- Boost学习笔记(五) progress_display
progress_display可以在控制台显示程序的执行进度,如果程序执行很耗费时间,那么它能够提供一个友好的用户界面 #include <boost\timer.hpp> #inclu ...
- HDFS体系架构
Master-slaver结构,namenode是中心服务器维护着文件系统树和整个树内的文件目录, 负责整个数据集群的管理.datanode分布在不同的机架上,在客户端和namenode的调度下 存储 ...
- python 初级1
List:Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 构造list非常简单,按照上面的代码,直接用 [ ] 把list的所有元素都括起来, ...
- oracle 开窗分析函数和树形结构
1.row_number() over(partition by ... order by ...)2.rank() over(partition by ... order by ...)3.dens ...
- UVALive 3902 网络
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- TCP/IP基础概念及通信过程举例
TCP/IP基础概念及通信过程举例 出现 上个世纪60年代,由于中央集中式网络的容灾性较弱,以美国国防部为中心的一家组织研究出分组交换网络.后来为了验证分组交换技术的实用性,ARPANET出现了,并且 ...
- godep 包管理工具
godep是解决包依赖的管理工具 安装 go get github.com/tools/godep 成功安装后,在GOPATH的bin目录下会有一个godep可执行的二进制文件,后面执行的命令都是用这 ...
- 用:hover伪类代替js的hover事件
制作二级菜单要实现鼠标移动上去显示子菜单,鼠标移出子菜单隐藏,或者其他类似需求的地方,首先我会想到用jquery的hover事件来实现,如: $(".nav").hover(fun ...
- C++编程小知识随手记
C++编程小知识点: (1)queue和vector类型: 加入元素 : queue是queue.push(),vector是vector.push_back(), 删除元素: queue是queue ...
- matplotlib总结
主要使用matplot.pyplot import matplot.pyplot as plt plt.figure(1) plt.subplot(211) plt.plot(x,y, 'rs') p ...