题解 | #放苹果#

放苹果

https://www.nowcoder.com/practice/bfd8234bb5e84be0b493656e390bdebf

package main

import (
    "fmt"
)

func main() {
    var m , n int 
    fmt.Scan(&m, &n)

    // 约定 后面的不能够比前面的小   
    // dfs 搜索即可

    ans := 0 
    // path := make([]int, 0)
    var dfs func(level int , preLevel int , all int )
    dfs = func(level int , preLevel int , all int){
        if level == n - 1 && m - all >= preLevel{
            // path = append(path, m - all)
            // fmt.Println(path)
            ans ++
            return

        }

        for i := preLevel ; i <= m - all ; i ++{
            if i + all <= m {
                // path = append(path , i)
                dfs(level + 1 , i , i + all)
                // path = path[:len(path)-1]
            }
        }

    }
    dfs(0 , 0, 0)
    fmt.Println(ans)

}

全部评论

相关推荐

内向的柠檬精在研究求...:这不才9月吗,26到明年毕业前能一直找啊,能拿下提前批,转正的,offer打牌的都是有两把刷子的,为什么非要跟他们比。如果别人是9本硕+金牌+好几段大厂实习呢?如果别人是双非通天代呢?如果别人是速通哥呢?,做好自己就行了,我们做不到他们一样提前杀死比赛,但晚点到终点也没啥关系吧
双非应该如何逆袭?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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