zoukankan      html  css  js  c++  java
  • 5600. 第 K 条最小指令 组合数学

    Bob 站在单元格 (0, 0) ,想要前往目的地 destination :(row, column) 。他只能向 右 或向 下 走。你可以为 Bob 提供导航 指令 来帮助他到达目的地 destination 。

    指令 用字符串表示,其中每个字符:

    'H' ,意味着水平向右移动
    'V' ,意味着竖直向下移动
    能够为 Bob 导航到目的地 destination 的指令可以有多种,例如,如果目的地 destination 是 (2, 3),"HHHVV" 和 "HVHVH" 都是有效 指令 。

    然而,Bob 很挑剔。因为他的幸运数字是 k,他想要遵循 按字典序排列后的第 k 条最小指令 的导航前往目的地 destination 。k  的编号 从 1 开始 。

    给你一个整数数组 destination 和一个整数 k ,请你返回可以为 Bob 提供前往目的地 destination 导航的 按字典序排列后的第 k 条最小指令 。

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/kth-smallest-instructions
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    class Solution:
        def kthSmallestPath(self, destination: List[int], k: int) -> str:
            v, h = destination
            ans = list()
    
            for i in range(h + v):
                if h > 0:
                    check = math.comb(h + v - 1, h - 1)
                    if check < k:
                        k -= check
                        ans.append("V")
                        v -= 1
                    elif check >= k:
                        ans.append("H")
                        h -= 1
                else:
                    ans.append("V")
                    v -= 1
            
            return "".join(ans)
    
  • 相关阅读:
    这一年来
    网络流复习笔记
    Codeforces Round #431
    Codeforces Round #398 (Div. 2)
    Codeforces Round #418 (Div. 2)
    【Codeforces 98E】 Help Shrek and Donkey 游戏策略神题
    【bzoj1878】[SDOI2009]HH的项链
    Round 403 div. 2
    Codeforces Round #417 (Div. 2)
    Codeforces Round #416 (Div. 2)
  • 原文地址:https://www.cnblogs.com/xgbt/p/13909249.html
Copyright © 2011-2022 走看看