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_id​i​​为1号点到ii号点的距离。

选出至少两个节点。显然,一共有2^n-n-12​n​​−n−1种选取的方案。等概率的随机选取一种方案。接着,令ff为选取的点中d_id​i​​的最大值,gg为选取点中d_id​i​​的次大值(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)的更多相关文章

  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条边,最后一条边的 ...

  2. HDU 5432 Rikka with Tree (BestCoder Round #53 (div.2))

    http://acm.hdu.edu.cn/showproblem.php?pid=5423 题目大意:给你一个树 判断这棵树是否是独特的 一颗树是独特的条件:不存在一颗和它本身不同但相似的树 两颗树 ...

  3. 哈密顿图 BestCoder Round #53 (div.2) 1003 Rikka with Graph II

    题目传送门 题意:判断是否为哈密顿图 分析:首先一种情况是不合法的:也就是度数为1的点超过2个:合法的有:,那么从度数为1的点开始深搜,如果存在一种走法能够走完n个点那么存在哈密顿路 收获:学习资料 ...

  4. 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 ( ...

  5. 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 ...

  6. BestCoder Round #11 (Div. 2) 题解

    HDOJ5054 Alice and Bob Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/O ...

  7. hdu5635 BestCoder Round #74 (div.2)

    LCP Array  Accepts: 131  Submissions: 1352  Time Limit: 4000/2000 MS (Java/Others)  Memory Limit: 13 ...

  8. hdu 5636 搜索 BestCoder Round #74 (div.2)

    Shortest Path  Accepts: 40  Submissions: 610  Time Limit: 4000/2000 MS (Java/Others)  Memory Limit: ...

  9. hdu5634 BestCoder Round #73 (div.1)

    Rikka with Phi  Accepts: 5  Submissions: 66  Time Limit: 16000/8000 MS (Java/Others)  Memory Limit: ...

随机推荐

  1. laravel的学习感受

    学习laravel也有一段时间了自己感觉还是不怎么难就是自己的代码不熟悉所以很多的不怎么会.

  2. js 不同进制之间相互转换

    如果a进制与b进制都不等于10,则十进制作为桥梁进行转换 例如 10进制的数字11 转换为3进制为102 10进制的数字11 转换为4进制为23 现在进行3进制转4进制 1.3进制转10进制 2.10 ...

  3. 关于OJ1028的参考解法

    其中运用了最小公倍数与最大公约数乘积等于两数相乘的定理. #include <stdio.h> int main(int argc, char *argv[]) { int a,b,c,d ...

  4. 各种SKYPE网页代码,SKYPE在线代码

    各种SKYPE网页代码,SKYPE在线代码 <a href="skype:账户?chat" target="_blank">开始 Skype 文字聊 ...

  5. ubuntu服务管理

    uRedhat 提供了chkconfig这个命令来管理系统在不同运行级别下的服务开启/关闭: chkconfig ServiceName on/off 并可以用chkconfig --list(两个杠 ...

  6. VB.net中Ajaxpro的使用

    1:从网上下载:AjaxPro.2.DLL文件,下载地址: http://files.cnblogs.com/wequst/AjaxPro.2.zip 2:解压之后把DLL放到程序bin目录下进行参照 ...

  7. ubuntu 14.04 java开发环境搭建 jdk 以及 inteliJ IDEA安装

    1.安装包 jdk1.7.0_71 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-188026 ...

  8. Java集合框架

    集合框架体系如图所示 Java 集合框架提供了一套性能优良,使用方便的接口和类,java集合框架位于java.util包中, 所以当使用集合框架的时候需要进行导包. Map接口的常用方法 Map接口提 ...

  9. fstream文件操作

    fstream(const char* filename, ios::openmode); ios::app: 以追加的方式打开文件 ios::ate: 文件打开后定位到文件尾,ios:app就包含有 ...

  10. windows使用python3.4生成二维码

    1.首先下载qrcode库 使用pip命令: pip install qrcode python3.x以上的版本默认是安装好pip的,如果出现无法找到pip指令的信息的话,则需要首先安装pip. 2. ...