zoukankan      html  css  js  c++  java
  • [CH#58解题报告]

    题目:http://206.contesthunter.org/contest/CH%20Round%20%2358%20-%20OrzCC%E6%9D%AFnoip%E6%A8%A1%E6%8B%9F%E8%B5%9Bday2

    分析:

    T1:二分就行

    T2:主要的问题就是当a是a和b的LCA时,a->b这条链上a下方的一个点是谁?很明显可以从b暴力向a走,找这个点,拿到60分。我当时想的是用树链剖分,这样暴力向上走就可以直接走重链的顶点,大致做到Logn,但是n=200000,树链剖分的dfs就直接爆栈了……正解就是采用离线的方法求这个点,把所有这类的询问都存下来,然后一遍dfs整颗树,按时间戳加入栈中,那么当b进入栈的时候,a一定在栈中,且a头顶上的就是所求的点。(或者倍增暴力搞)

    T3:DP的最大问题是不知道当前哪些障碍点已经移除,于是我们换一个状态表示,f[i,j,p']表示左上角在(i,j)时,之前的2k-2步方向表示的状态为p'时的最小消去障碍物个数,我们可以通过预处理和位运算将p'计算成p。时间空间复杂度O(4knm)。

     
  • 相关阅读:
    洛谷
    洛谷
    洛谷
    洛谷
    洛谷
    模板
    模板
    模板
    洛谷
    模板
  • 原文地址:https://www.cnblogs.com/wmrv587/p/4052016.html
Copyright © 2011-2022 走看看