lt 5600. 第 K 条最小指令 (组合数+思维)
第 K 条最小指令
思路
优先确定高位 + 组合计数
首先,此题可以转化为排列h个H和v个V组成字符串集合中,第k小的字符串是哪一个?
考虑最高位是放 H 还是 V。由于后者的字典序较大,因此如果最高位放 V,那么所有最高位为H 的字符串的字典序都比它小,这样的字符串共有n = c[h + v - 1][h - 1]个。即就是确定了最高位为 H,剩余 h+v-1个位置中选择 h-1 个放入 H,其余位置自动放入 V 的方案数。因此:
如果 k大于这个组合数 n,那么最高位一定是 V。我们将 v 减少 1
原创
2020-11-01 22:01:10 ·
211 阅读 ·
0 评论