• 09-03 NOIP模拟测试36


    期望得分:60+64+0

    实际得分:0+32+0

    rk33

    又炸了,T1暴力细节不到,T2区间dp填表有bug,T3rand数

    这几次考试在T1上花的时间都太多了,觉得自己能想到正解然而磨了好久只能打暴力是真的难受,还是注意下取舍吧。暴力未尝不可更优。

    A. 字符

    这题暴力剪枝可A,正解没看太懂,找时间补下。

    B. 蛋糕

    区间dp,考试的时候打完发现大样例不能过,然后举了个“反例”,脑抽以为状态不能保持全局最优。

    7 5 2 6 10 inf

    从2开始的最优策略:我 2->5->inf

    我错误地认为[3,4]会错误的贪到[3,5],然而[2,4]的情况是有保留的。

    打的填表稍绕了下就挂了?

    还是自己对dp的理解不透啊,不明白如何证明区间dp的正确性。

    考后想了下发现其实是最后一次更新会和自己比较,然而我没有判入相等的更新,于是挂了,加了两个字符AC。。。

    设dp[i][j],表示[i,j]的蛋糕都被拿完,r-l+1的奇偶决定是谁行动。

    转移就很显然了

    我:dp[i][j]=max(dp[i+1][j]+a[i],dp[i][j-1]+a[j])

    她:dp[i][j]=max([a[i]>=a[j+1]]*dp[i+1][j],[a[j]>=a[i-1]]*dp[i][j-1])

    也可以记忆化搜索,比较好写。

    C. 游戏

    前两题把自己搞到心态爆炸,T3没有留时间。

    后来发现T3还算可做。

    这题需要几个性质:

    • 一个莉露露至多行动一次。假设我在隔开的两段用了同一个莉露露,相当于这个莉露露走了完整的C,那显然可以用第一个直接拿着人过来。
    • 不存在一个莉露露带着人走了一段,然后又把人抛出去的情况。

    如果C<A,那全程拿着走更优

    如果C>A,只要选择抛出去,就会增加B,之后用A走更优。如果中途再抛显然不优。不抛也是可能的,即Cx<Ax+B

    考虑整个过程:

    一定是一个莉露露拿起由岐,然后选择抛出给下一个莉露露或者带着走。重复这个过程

    之后的处理类似传送门那题。

    由岐的移动可以抽象为不断召唤莉露露抛出或单步的过程。把这些选择放到由岐所在的(x,y),建对应权值的边跑dij即可。

    不同于传送门的是有不同的移动花费和抛出直线的限制,抛出过程不能转弯。

    定义(x,y,0/1/2)表示在点(x,y),状态0南北滞空,1东西滞空,2被携带。

    d[x][y]的预处理与传送门那题相同,把每个莉露露放进队列开始bfs,第一次更新为最优。

  • 相关阅读:
    heat模板
    Leetcode812.Largest Triangle Area最大三角形面积
    Leetcode812.Largest Triangle Area最大三角形面积
    Leetcode811.Subdomain Visit Count子域名访问计数
    Leetcode811.Subdomain Visit Count子域名访问计数
    Leetcode806.Number of Lines To Write String写字符串需要的行数
    Leetcode806.Number of Lines To Write String写字符串需要的行数
    Leetcode819.Most Common Word最常见的单词
    Leetcode819.Most Common Word最常见的单词
    Leetcode783.Minimum Distance Between BST Nodes二叉搜索树结点最小距离
  • 原文地址:https://www.cnblogs.com/hzoi-yzh/p/11461650.html
Copyright © 2020-2023  润新知