..E1
限时每日一题day5。第二次成功,这次是一道个人认为很简单的 \(dp\),刚开始往组合计数方面想了导致浪费了些时间,应该能做得再快一点的。
可以发现第 \(i\) 天的方案与前 \(i-1\) 天的决策是没有任何关系的,数据范围又很小,因此很可以 \(dp\)。
设 \(dp[i][j]\):考虑前 \(i\) 天,且第 \(i\) 天回到了 \(cabin _{j}\),方案数。则 \(ans = \sum_{i=1}^{m}dp[n][i]\)。
初始化要注意到第一天比较特殊,因此先初始化所有的 \(dp[1][j]\)。
剩下的转移:
\[dp[i][j] = \sum_{k=1}^{m}dp[i - 1][k] * (s[k] * (s[j] + l[j]) + l[k] * s[j])
\]
具体细节见代码。
code