塔子哥是一个热爱户外运动的人,他周末经常约朋友一起登山。华光林山清水秀,景色宜人,让他感到非常愉悦。他喜欢在登山的过程中欣赏美景,感受大自然的魅力。同时,他也喜欢挑战自己,尝试攀登更高的山峰。
塔子哥登山时每一步可以选择向上爬一个台阶或者多个台阶,如果登山时选择的台阶不同,则为一种爬山方案。
如果没有这些限制,就是一个经典的爬楼梯问题,我们使用动态规划解决。状态dp(i)为:从山底走到第i层的所有可能方案数。
但是我们有p,k的限制,所以转移形如:
$$dp_i = \sum_{j = 1} ^{i-1} dp_{j} , when\ |j-i+1| \leq k\ and \ \sum_{s=j+1}^{i} H_s \leq p $$我们可以暴力的直接转移,得到O(nm2) 的 dp 但是时间不允许,会超时。只能拿一部分分数。