zoukankan      html  css  js  c++  java
  • 纪中集训2020.02.09【NOIP提高组】模拟B 组总结反思

    JZOJ.1747【NOIP2014模拟11.5】无穷迷宫

    比赛时

    比赛时没多想,随便打了一个BFS,把迷宫复制成五份——上下左右中,然后跑BFS,如果能从1个S跑到另1个S,就可以无尽走下去否则不可以,WA30。

    之后

    其实,有一种特殊情况没有考虑例如下面这个:

    ##.#######.#
    #..#......S#
    #.#..#######
    ..#.###.....
    ##..##..####
    #..##..#####
    ..##..#.....
    ###..##.####
    ##..#...####
    #..##.######
    ..##..####..
    ##...#####.#
    

    我们发现,如果按照我的方法复制5份,是无法到达另一个S点的,但是在下面多复制几份,就发现可以。正解:也是BFS,可以无尽走下去就说明出现了环(相对位置——小矩阵,形成的环。也就是说相对位置形成的以S点路径上有两个相同的点),而且绝对位置——大矩阵不出现重复,由于相对位置不同的点只有(NM)个所以时间复杂度为(O(Tnm))这个正解我现在还没看太懂,呵呵呵

    总结

    手模很有用,可以出一些坑的数据来测试程序。做题时要仔细想清楚特殊情况!!!


    JZOJ1478.【NOIP2014模拟11.5】近似乘积

    比赛时

    我最讨厌这种数学题,尤其是这种涉及到优化循环的数学题,很显然,如果不加优化地枚举(x),(y),(z),会在(40)(70)分左右,于是决定先干完T3再回来打暴力。可惜:最后没来得及。

    之后

    这题的做法同学们有两个

    1. 同样是枚举(x),(y),(z)。但是要加上一些判断条件来优化。第一个——(x*x*x<=n),因为我们枚举的时候是(x leq y leq z),而(x*x*x>n)的时候,当前(x)的最优答案必定是(x*x*x),后面两重循环枚举的顶多相等或是越来越大,差值也就越来越大。第二个——(x*y*y leq n),其实这个式子和上面的原理是差不多的。所以说,这个方法的上限时间复杂度是(O(sqrt[3]{n}*sqrt{n}*n)),但实际上会小很多,可以过(不只是数据太水还是算法本身够快,有兴趣打大佬可以来仔细算算时间复杂度)

    2. 这是一个稳定的算法,虽然实际时间没有上面的快。处理出一个(B)数组,表示可用的数字,范围是(1)(n),再加上第一个(>n)且可用的数字。两重循环枚举(x),(y)(当然是在(B)里面枚举),保证(x<=y&&x*y leq n),然后二分求出第一个使得(x*y*z geq n)(z),那么答案有可能是(z),也有可能是(z-1),判断一下即可,还需要注意的是这里求出的(z)有可能比(x)(y)小。时间复杂度的上限(O(sqrt n*n*log_2n)),同样的,我们也可运用上面的判断条件加以优化,上限(O(sqrt[3] n* sqrt n*log_2n)),看起来超快?实际我们求(B)数组也需要一些时间最多是需要(2000000)(如果人家故意卡你的话),(O(sqrt[3] n* sqrt n*log_2n*2n)),这才是真的!!!当然,这个算法可以过!!!

    总结

    看到我最讨厌的这种题,也不要灰心丧气,可以从中找出一些优化的方法,拿高分就不在话下了。


    JZOJ3926. 【NOIP2014模拟11.5】开关灯

    比赛时

    我老以为这题很难,在哪儿又想DP又想网络流,最后没想到,打了个暴力——统计每一列0的个数(初始状态和期望状态都要),对于每一列判断是否相等或者与期望状态这一列的0的个数相加等于(n),如果相等直接跳过,相加等于(n)就按一下按钮,如果两个条件都满足,就递归按或不按,到递归出口时,(n*nl)的暴力看一下两行交换是否能达到最终状态。

    之后

    这题可以用二进制来做,对于每行用一个(long long)来存,我们枚举原本状态的第一行与目标状态的第几行匹配,异或代表这两行的数,得到一个数(c),每(i)位为1就表示第(i)列要按,否则不按。然后把原本状态的每行异或一下这个数,这样就可以求出按后的状态,再把按后的与目标的进行匹配,匹配成功且按的次数少的就更新答案,注意要把按后的状态再按回来。时间复杂度(O(n^3))

  • 相关阅读:
    生产宕机dunp配置
    虚拟机下载地址
    处理soapUI特殊返回报文 【原】
    SpringMVC 手动控制事务提交 【转】
    码云URL
    Java IO流操作汇总: inputStream 和 outputStream【转】
    springMVC下载中文文件名乱码【转】
    js
    js
    js
  • 原文地址:https://www.cnblogs.com/cjz-IT/p/contest20200209.html
Copyright © 2011-2022 走看看