zoukankan      html  css  js  c++  java
  • b_zj_到达圆环特定位置的方案数(dp)

    圆环上有10个点,编号为0~9。从0点出发,每次可以逆时针和顺时针走一步,问走n步回到0点共有多少种走法。
    输入: 2
    输出: 2
    解释:有2种方案。分别是0->1->0和0->9->0

    f[i][j]表示用i步走到位置j的方案数,比如f[1][1]表示用1步走到1的方案数是2,可能是从0->1或者2->1,所以 f[i][j]=f[i-1][j-1]+f[i-1][j+1]

    package main
    import "fmt"
    func solve(n int) int { //n步
        const m = 10
        var f [10005][m]int //用i步走到位置j的方案数
        f[0][0] = 1
        for i := 1; i <= n; i++ {
            for j := 0; j < m; j++ {
                f[i][j] = f[i-1][(j-1+m)%m] + f[i-1][(j+1)%m]
            }
        }
        return f[n][0]
    }
    func main() {
        var n int
        fmt.Scanf("%d", &n)
        fmt.Println(solve(n))
    }
    

    https://mp.weixin.qq.com/s/VnGFEWHeD3nh1n9JSDkVUg

  • 相关阅读:
    ceph部署与问题
    openstack常见问题汇总
    css
    html
    zookeeper
    ZAB协议
    快速排序
    Servlet梳理
    tomcat性能优化梳理
    tomcat梳理
  • 原文地址:https://www.cnblogs.com/wdt1/p/14697447.html
Copyright © 2011-2022 走看看