Day1
T1生活大爆炸版剪刀石头布:模拟,水;
T2联合权值:树形DP,水;
T3Flappy Birds:
这道题我当时算时间复杂度算错了,O(nm^2)的时间复杂度给算成O(nm)了,所以根本就没想优化,以后①算时间复杂度的时候要小心一点了。
其实正解也是很简单的,只是在直译式DP的基础上做了一点小优化。
直译式DP:设f(i,j)为到达当前点的最小步数,则
f(i,j)->f(i-1,j+Y[i-1])
->f(i-1,j-k*X[i-1])+k,k>0且j-k*X[i-1]>0
完全背包式优化:
f(i,j)->f(i-1,j-X[i-1])+1
->f(i,j-X[i-1])+1
->f(i-1,j+Y[i-1])
(顺序不能颠倒)
“因为f(i,j)这个状态实际上可以由f(i,j-X[i-1])这个状态转移而来"——GTY orz
②这种多步与一步等价的思想实际上是非常实用和需要我掌握的。
回来以后写的AC代码: