4.28总结

来源:互联网 发布:淘宝店铺类目怎么设置 编辑:程序博客网 时间:2024/06/16 23:28

总结

  • 今天做题其实还是挺有感觉的。。但是思维没有开阔起来。

过程

  • 先看了一下题目,第一题把他的式子随便化了一下,又看到A是01矩阵,就知道是道网络流裸题了。。第二题一开始想没有什么好的思路。第三题又是SAM的裸题。第四题看着那个条件感觉很眼熟,好像就是线性无关。刚好冬令营的时候讲过他的贪心。所以大致确定了1,3,4的做题顺序。
  • 第一题还是比较好打的。但是一开始打了dinic,比较慢,后来换成了sap,打完差不多9点钟。
  • 接下来打第三题,SAM还是不太熟悉。对fail指针的意义以及其Dp的顺序掌握不好。推了一下以为可以了。然后拍也是Ok的。
  • 第四题,一开始都忘记高斯消元怎么打了。一直在改高斯消元。而且对于线性无关的判定很不熟悉。导致我根本无法把70分的算法改进到100分。而且拍完第四题之后都已经差不多10点半了。
  • 最后去搞第二题。丝毫没有思路。自己YY了一个贪心。想不到怎么把题目模型抽象出来。

最后220。。第三题挂掉了。第二题只有十分。

第三题的错误在于,

  • SAM Dp之前,应当把节点按其len进行排序,不能进行拓扑排序,因为fail的拓扑序不一定在其前面。

第二题的做法!!!

  • Description

    • 给你一副NM的网格图。

      上面的每个点都有宝藏数Ai,Ai0

      你每次都从左上角出发,并且只能往右边和下边走。
      走到一个点,你只能捡起一个单位的宝藏。

      问你至少要走多少次,才能将所有的宝藏捡完。
      N1000,M1000

  • 我们可以注意到的是,

    • 若对于两个位置(i,j),(x,y),满足ix,jy,那么我们永远都不可能用一条路径把他们两个都覆盖了。

      我们找出宝藏总数最大的一个点对序列(i1,j1),(i2,j2)......(ik,jk),其中ixix+1,jxjx+1

      设其宝藏总数为y
      那么我们最终的答案就是y

      这个为什么是正确的呢??

      因为我们要覆盖这k个点,至少需要k条路径,且因为我们计出来的是宝藏总数最大的。也就是说约束最紧的点。

      设最终的答案为Ans

      那么显然的是,Ansy

      接下来我们证明Ansy

      设一个点P(x,y),且P不在这个序列当中。

      那么P有两种情况


      1. P可以被一条经过点i,其中i属于我们点序列,的路径穿过。那么因为i的宝藏数比P的大(不然i就不会被选入序列中了),所以P肯定能被取完。

      2. P不能被一条经过点i,其中i属于我们点序列,的路径穿过。那么P显然会被选入我们的序列。与P不在点序中矛盾。
    • Ansy,Ansy Ans=y

总结

  1. SAM还是掌握的不好。对于一些自己之前比较在行但很久没有打过的东西容易忘记。。所以还是要经常复习。
  2. 考试的时候脑洞没有打开。思维还是不行。
  3. 算法的实现做不到简洁。这样子其实容易使得自己无法对算法进行进一步的优化。拿到更多的算法。
0 0
原创粉丝点击