[训练日志] 7月15日,7月16日

7月15日

132D

[给一个二进制数,如何用最少的+2^x与-2^x表示]
[观察到有两种方法。一种是直接用+2^x补。另一种对于L-R的区间,用+2^(L+1)与-2^R以及若干个-2^x表示,x是0的位置。注意到第二种方法是作用于头尾都是1的连续一段,且中间不含00(如果有 则可劈成两段),然后把原串分成若干段分别贪心]
[一开始往补码的方向考虑了,不太好DP。思考问题应该先从基本方法出发,不要优先考虑一些奇技淫巧]
392B
[汉诺塔,g[x][y]表示从x柱移到y柱的代价。求1挪到3的最小代价]
[f[k][x][y]表示将k层从x柱移到y柱最小代价。f[k][x][y]=min(f[k-1][x][z]+g[x][y]+f[k-1][z][y], f[k][x][y],f[k-1][x][y]+f[k-1][y][x]+g[x][z]+g[z][y]+f[k-1][x][y])]
632E
[给n种物品,无限多,每周物品有一个代价a[i]。求恰好选m个物品,有多少种代价的可能性]
[将a从小到大排序。每一种组合都可以减掉m*a[1]。这样考虑i>=2,另b[i]=a[i]-a[1]。做b的完全背包,这样<m的部分可以用a[1]补上。最后答案再把m*a[1]加上即可]
696D
[给你m个串每个串有一个收益。让你构造一个长度为n的串,如果再串中出现一次给定的串就获得一次对应的收益,求最大收益]
[首先刻画状态需要ac自动机,把ac自动机的节点看出状态。有f[i][x]=max(f[i-1][y]+value[y][x])。将+看出max,*看成+,即可运用矩阵乘法优化。]
[Tips:该技巧运用max_plus理论]
7月16日
复习概率与期望,复习线性代数。
学习max_plus理论。
 

posted on 2017-07-17 11:07  JSZKC  阅读(142)  评论(0编辑  收藏  举报

导航