思路:
算法分析:
根据题目中的数据范围可以轻易得知,此题的时间复杂度必须是或优于 O ( n m ) O(nm) O(nm) 所以,搜索就想都别想,根据本人猜测,此题使用暴搜加上剪枝,是差点火候的,也许只有记忆化才能写过。
这道题简化来说就是有 M M M 种方式完成 N N N 个任务,可以初始随意选择一种方式来完成,之后每一步,可以不切换方式,也可以切换成第 i + 1 i+1 i+1 个方式,但第 M M M 中方式,能切换到第 1 1 1 种方式。
对于每步决策,要么不换,要么换,这不就是DP的典型吗,再想想,这个问题每次决策不直接影响后面的决策,满足无后效性;即可考虑DP。
如何设计:
我们可以设 d p i , j dp_{i,j} dpi,j 表示当进行到第 i i i 步时,并且选择第 j j j 种方式的最优解,则在一般情况下,要么是由用原先的方案的状态转移而来,即 d p i − 1 , j dp_{i-1,j} dpi−