什么是状态?什么需要设到状态里?状态必须能完全的刻画一种情况,状态的值是要全部保留而不是取最大存起来的,是转移方程中必须的。
12.16
上面是第一题1040的感悟。1043的最开始想到了正解,但是误认为把段数写到状态里要枚举组合。其实只需要考虑断点k,左边d-1段,右边1段,反正所有的情况都处理好了,这样就能涵盖所有。只是把一堆最优的小段用大壳子套起来而已了。
对了第一题为了输出路径改了好久。简单的孩子父亲表示法是不行的,虽然能通过覆盖存下最终的树但是之前的树删除不干净,所以要用区间连边。小数据完全可以输出所有中间数据,不要怕麻烦。一个-写成+,以后专门检查。
12.26
今天练习很奇怪。p1136。首先是思维技巧,交换字符等操作可以变成只改变一个字符,统计答案时只看两种改变的次数相同的结果,多设一维的状态。对于状态多的情况先考虑转移方程,根据方程写循环。写转移方程时分情况讨论,不要急。不能急急忙忙写一堆if上去,分开来细细讨论。遇到2、3个的小维度时也可以循环,更清晰。什么时候初始正无穷负无穷搞清楚。改代码时一直没发现根本没编译过,不过经过复杂的思考还是改对了。