#12276. 假面骑士 创骑的瓶子分配

假面骑士 创骑的瓶子分配

🚀 创骑的瓶子分配

📖 故事背景

在《假面骑士 创骑(Build)》的世界里,创骑收集了许多 ​全瓶​(Full Bottles), 这些全瓶可以被放入不同的 实验槽 中进行组合,形成新的力量。

现在,创骑手上有 ​n 个相同的全瓶​, 面前有 ​k 个不同的实验槽​,​允许有的实验槽为空​。

⚔️ 长老万丈 又出了一个难题:

“创骑啊,你不仅要算出 ​有多少种不同的分配方案​, 还要告诉我:​这个方案总数和 k 的最大公约数是多少​”


📌 题目描述

给定两个整数 n 和 k,表示 n 个相同的全瓶 放入 ​k 个不同的实验槽​(允许槽为空), 请你输出:

  1. 不同分配方案总数
  2. 这个方案总数与 k 的最大公约数

📥 输入格式

n k

📤 输出格式

方案总数
最大公约数

📋 输入样例

5 3

📌 输出样例

21
3

💡 公式提示

  1. 隔板法​: 相同的 n 个物品放入 k 个不同的盒子(允许为空), 方案数为:

C(n+k1,k1)C(n + k - 1, k - 1)

  1. 最大公约数​: 用 gcd(方案总数, k) 计算。