• ZJOI2017(1) 游记


    ZJOI2017第一轮:2017.3.21---3.23

    温州中学

    //http://www.cnblogs.com/ARZhu-NOIpAK/p/6596879.html  

    //http://www.cnblogs.com/ARZhu-NOIpAK/p/6601676.html

    //上面是学长的博客

    Day0

         有好多天没做作业了,感觉不错。

         温州还是不错的,宾馆也很满意。

         感觉明天会听不懂。

    Day1

         第一节课的前半部分还能勉强听懂,后面和下午一脸懵逼。

         第一节课是由XJ中学的周子鑫学长上谈谈搜索题,下面是一点总结。

         搜索算法是利用计算机的高性能来有目的的穷举一个问题解空 间的部分或所有的可能情况,

    从而求出问题的解的一种方法。现阶 段一般有枚举算法、深度优先搜索、广度优先搜索、A* 算法、

    回溯算法、蒙特卡洛树搜索、散列函数等算法。

         在大规模实验环境中, 通常通过在搜索前,根据条件降低搜索规模;根据问题的约束条件 进行剪枝;

    利用搜索过程中的中间解,避免重复计算这几种方法进 行优化。

    part 1:折半搜索

         比如说双向广搜之类的,主要是从起点和终点交替搜或者是同时搜,可以降低搜索复杂度。

    如果答案容易合并,或者搜索的操作可逆,可以考虑折半搜索。

         还有一个技巧,要算方案数时,将折半的两边都存入hash数组,有重叠则答案+1。

    part 2:

         启发式搜索

         A*:BFS的启法式版本;

         IDA*:前者的迭代加深版本

         A* 的主要思想是通过估价函数来调整搜索顺序从而优化复杂度,比如说:先搜分支少的。

         IDA*则是通过估价函数来最优性剪枝

    part 3:

         Dancing links(舞蹈链)

         主要是这几句:

               L[R[x]]← L[x]

               R[L[x]]← R[x] (删除)

         现在如果要撤消这个删除操作呢?

               L[R[x]]← x

               R[L[x]]← x

         为什么要在把一个结点删除掉以后再把它放进来呢? 一个典型的应用是在 DFS 的时候,还原之前的链表状态

         这个东西看上去不怎么奇妙,但可以大大优化精度覆盖等覆盖问题的X算法。

         后面就讲了好多典型的搜索题,然而没多少听懂。

         第二节课是STL的正确姿势,很多函数都很陌生,感觉自己现在用不到?

         这里列几个函数,以后可能用的上:unique  nth_element  binary_search  rope  equal_range

    priority_queue<int,vector<int> ,greater<int> >Q(大根堆转小根堆)

         第一天的最后一节课讲了一些题目,反正我一道也没明白,这里就不讲了。

    Day2

         还是讲题,听不懂ing……

    学了一个SG函数:

    在一个DAG中,从起点开始,每人移动一步,一方不能走了则输;

    SG[i]= mex{SG[x]} //x为i能到达的点

    (mex表示在集合中未出现的最小自然数 mex{1,2}=0)

    如果有两张图同时可以选,答案则为两张DAG的值异或一下

         直接跳过。

    Day3 

         考试+爆0。  (爆0很有意思的呀)

         花了一半的时间敲第一题,最后才发现写错了,一紧张,20分的链状本来很稳的,手算把规律算错了完美0分。第二题是一道概率题,我一道这样的题都没碰过,暴力又太难写了,果断放弃。(喂,喂,明明题目看了很久的)第三题打了个不能再暴力的暴力,n^m的复杂度(真佩服我自己的智商),考场上差点连KMP都忘了。

    总结:

        毕竟是第一次参加省选,爆0也是正常的(这个借口不错)。说明自己的水平是非常非常不够的,以后还要更加努力,数学和科学也要更加突出,早日考上满意的高中。

                                     天赋决定上限,努力决定下限。------maximum

  • 相关阅读:
    LeetCode Count Primes
    LeetCode Isomorphic Strings
    126. Word Ladder II
    131. Palindrome Partitioning
    146. LRU Cache
    [LintCode] 574 Build Post Office II
    297. Serialize and Deserialize Binary Tree
    133. Clone Graph
    261. Graph Valid Tree
    [LintCode] 598 Zombie in Matrix 解题报告
  • 原文地址:https://www.cnblogs.com/hanyu20021030/p/6602143.html
Copyright © 2020-2023  润新知