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. getopt()和getopt_long()用法

    参考链接: http://home.eeworld.com.cn/home.php?mod=space&do=blog&id=43897&uid=101752 http://b ...

  2. flume的使用

    1.flume的安装和配置 1.1 配置java_home,修改/opt/cdh/flume-1.5.0-cdh5.3.6/conf/flume-env.sh文件

  3. [POJ2069]Super Star(模拟退火)

    题目链接:http://poj.org/problem?id=2069 题意:求一个半径最小的球,使得它可以包围住所有点. 模拟退火,圆心每次都去找最远那个点,这样两点之间的距离就是半径,那么接下来移 ...

  4. 数据结构代码整理(线性表,栈,队列,串,二叉树,图的建立和遍历stl,最小生成树prim算法)。。持续更新中。。。

    //归并排序递归方法实现 #include <iostream> #include <cstdio> using namespace std; #define maxn 100 ...

  5. jQuery3的新特性

    前言:自从react,vue等方便的新框架出现后,好多大公司已经摒弃了jquery,但是大部分的公司还在使用,并且jquery的版本还在一直更新中.jquery2.x版本将不再支持IE6/7/8浏览器 ...

  6. static修饰的静态内部类

    Java里面static一般用来修饰成员变量或函数.但有一种特殊用法是用static修饰内部类,普通类是不允许声明为静态的,只有内部类才可以.被static修饰的内部类可以直接作为一个普通类来使用,而 ...

  7. HTML5 十大新特性(八)——Web Worker

    由于js是单线程的,所以H5添加了这个叫做webWorker的概念,允许js创建多个线程,但是子线程完全受主线程控制,且不能操作DOM,从而来处理一些比较耗时的操作. 那么如何创建一个子线程呢?通过这 ...

  8. (44) odoo中的WebService

    * 前言   erp系统会和其它系统进行对接,这时就要接口,官方给出的是两解决方案   * XML-RPCLibrary  举例    import xmlrpclib root = 'http:// ...

  9. jmeter for循环嵌套if学习2

    if语句中勾选Evaluate选项,每执行一句都会判断result的值是否为true. 执行结果: three没有执行,到debug时变量的值变成tom了

  10. PHP Switch case 条件并用实例

    众所周知,Switch循环比if...else...循环效率要好的多,当case有相同代码结构的时候,怎么样来简化代码结构,能让代码更具有通用性呢? 在网上找了一下,好多都是复制粘贴,还有的看起来太复 ...