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,第一次更新为最优。

 

posted @ 2019-09-04 21:47  hzoi_yzh  阅读(159)  评论(0编辑  收藏  举报