题目链接:http://codeforces.com/contest/507/problem/C

解题报告:现在有一个满二叉树型的迷宫,入口在根结点,出口在第n个叶节点,有一串命令,LRLRLRLRLR.....,L表示当前向左走,R表示现在向右走,然后如果碰到如果下一步的点是已经走过的,则跳过这条命令,如果下两步都是走过的话,则回到该节点的父节点。问从根结点走到出口一共到过多少个节点,包括出口节点,不包括根结点。

这是一棵满二叉树,现在假设出口的E那个点,从1出发,向左走,很显然,出口跟我现在所在的不是在同一棵子树上面,但是,可以肯定的一点是,在这种情况时,即我现在所在的子树跟出口不是在同一棵子树时,我一定会先把我当前所在的子树的所有节点都走一遍才会进入出口所在的子树上,利用这个特点,我们可以把时间复杂度简化到h,只要我每次判断当前所在的点是不是跟出口在同一课子树,如果是,继续向下走,如果不是,不用向下走了,只要加上我所在的这颗子树的节点的总个数就可以了。我一开始错在对long long 型数作位移运算时,没有对1进行强制转化声明,但是直接这样一个1放在那里默认的是int型的,所以位移运算时就会溢出,导致了我的代码在小数据时都没有问题,h达到39时,就怎么也不对了。这点要注意,以前很少对long long 型做过位移运算,这点以后要注意。

Codeforce 287 div2 C题的更多相关文章

  1. codeforce 459 DIV2 D题

    题意   在一个DAG上面有N个点M条边,每一条边上都有一个小写字母.两个人Max and Lucas 每个人一颗棋子,两个人轮流行棋,当前这一步选择的路上面的字母必须大于等于上一步路上面的字母,当轮 ...

  2. codeforce 192 div2解题报告

    今天大家一起做的div2,怎么说呢,前三题有点坑,好多特判.... A. Cakeminator 题目的意思是说,让你吃掉cake,并且是一行或者一列下去,但是必须没有草莓的存在.这道题目,就是判断一 ...

  3. codeforces 260 div2 C题

    C题就是个dp,把原数据排序去重之后得到新序列,设dp[i]表示在前i个数中取得最大分数,那么: if(a[i] != a[i-1]+1)   dp[i] = cnt[a[i]]*a[i] + dp[ ...

  4. codedorces 260 div2 A题

    水题,扫描一遍看是否出现价格低质量高的情况. #include<cstdio> #include<string> #include<vector> #include ...

  5. 2017 ACM Arabella Collegiate Programming Contest div2的题,部分题目写个题解

    F. Monkeying Around   维护点在多少个线段上 http://codeforces.com/gym/101350/problem/F 题意:有m个笑话,每个笑话的区间是[L, R], ...

  6. BC div2补题以及 复习模除 逆元__BestCoder Round #78 (div.2)

    第一题没话说 智商欠费 加老柴辅导终于过了 需要在意的是数据范围为2的63次方-1 三个数相加肯定爆了 四边形的定义 任意边小于其余三边之和 换句话说就是 最长边小于其余三边之和 这样的话问题转化为 ...

  7. codeforces round 422 div2 补题 CF 822 A-F

    A I'm bored with life 水题 #include<bits/stdc++.h> using namespace std; typedef long long int LL ...

  8. codeforces round 421 div2 补题 CF 820 A-E

    A Mister B and Book Reading  O(n)暴力即可 #include<bits/stdc++.h> using namespace std; typedef lon ...

  9. Codeforces round 419 div2 补题 CF 816 A-E

    A Karen and Morning 水题 注意进位即可 #include<bits/stdc++.h> using namespace std; typedef long long i ...

随机推荐

  1. angular随笔

    angular个别情况scope值不能改变或者不能绑定[如:指令内ctrl.$setViewValue()不能直接改变input的val值,该处需要使用scope.$apply] 如之前写的简单指令 ...

  2. 菜鸟之linux问题之图形界面和dos界面的登录问题

    1.安装完linux系统后,图形化界面的用户名和密码是之前安装的时候设置的. 如果想切换到linux的dos窗口快捷键是:ctrl+alt+F2 由dos窗口切换到linux图形界面快捷键是:ctrl ...

  3. easyUI 树的上下文菜单

    一.属性:onContextMenu onContextMenu: function(e,node){ e.preventDefault(); $(this).tree('select',node.t ...

  4. Curl http_code 状态码 意义及信息

    shell命令:curl -I -m 10 -o /dev/null -s -w %{http_code} http://test.com curl_init — 初始化一个curl会话curl_co ...

  5. Python 文件读写,条件循环(三次登录锁定账号实例)

    通过文件读写,条件循环相关语法,实现三次登录失败则锁定该账号的功能 需求一 """需求描述: 1.输入正确账号,密码,退出程序 2.登录失败,重新输入账号密码 3.同一账 ...

  6. Robot Framework--04 工作区

    转自:http://blog.csdn.net/tulituqi/article/details/7592711 一:Edit 接着前面的来,重新打开我们的RIDE,你会发现之前最后加的Resourc ...

  7. imageserver

    https://bitbucket.org/tamtam-nl/tamtam-nuget-imageserver/overview https://www.nuget.org/packages/Tam ...

  8. 全选,全不选,反选的js实现

    全选练习       ** 使用复选框上面一个属性判断是否选中                   - checked属性                   - checked=true:选中    ...

  9. Orchard源码分析(4.3):Orchard.Events.EventsModule类(Event Bus)

    概述 采用Event Bus模式(事件总线),可以使观察者模式中的观察者和被观察者实现解耦. 在.Net 中使用观察者模式,可以使用事件(委托)和接口(类).Orchard Event  Bus使用的 ...

  10. iwebshop二次开发

    1.iwebshop中写hello world ① 动作action方式 controllers目录下,然后创建text.php. <?php class Test extends IContr ...