题解 | #机器人达到指定位置方法数#

机器人达到指定位置方法数

http://www.nowcoder.com/practice/54679e44604f44d48d1bcadb1fe6eb61

package main
import (
    "fmt"
)

func main() {
    var n, m, k, p int
    var mod int = 1e9 + 7
    fmt.Scan(&n, &m, &k, &p)
    dp := make([]int, n + 1)
    dp[p] = 1
    for i := 1; i < k + 1; i++ {
        leftUp := dp[1]
        for j := 1; j < n + 1; j++ {
            temp := dp[j]
            if j == 1 {
                dp[j] = dp[j + 1] % mod
            } else if j == n {
                dp[j] = leftUp % mod
            } else {
                dp[j] = (dp[j + 1] + leftUp) % mod
            }
            leftUp = temp
        }
    }
    
    fmt.Println(dp[m] % mod)
}
全部评论

相关推荐

给🐭🐭个面试机会...:我擦seed✌🏻
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务