set - 使用仅包含一种元素的集合的子集计算不同分区的方法
问题描述
我们知道 3 件事
- n(集合中的元素数)
- k(零件数量)
- set s= {x,x,x,x,...,x(n times)} (这里 X 可以有任何可能的整数值)
我们必须将结果作为一个数字来查找,该数字将保存集合S可能的不同分区数量的值。
有什么方法(公式/程序)可以使用给定的值找到结果吗?
例子:
Input: n = 3, k = 2
Output: 4
Explanation: Let the set be {0,0,0} (assuming x=0), we can partition
it into 2 subsets in following ways
{{0,0}, {0}}, {{0}, {0,0}}, {{0,0,0},{}}
{{},{0,0,0}}.
further, see {{0,0}, {0}} is made up of 2 subsets namely {0,0}
and {0} And it has x(=0) used exactly n(=3) times
Input: n = 3, k = 1
Output: 1
Explanation: There is only one way {{1, 1, 1}} (assuming x=1)
注意:
我知道我在问题中使用了 Set 一词。但是集合被定义为不同元素的集合。因此,您可以将其视为一个 Multiset、一个数组,或者您可以假设一个集合可以为这个特定问题保存相同的元素。我只是想使用与问题中相同的术语。
解决方案
推荐阅读
- ios - 如何使用swift在iOS中的图像上实现黑色渐变
- android - 如何修复 Android Studio 中未找到的 Android 插件
- electron - 在 Electron 中使用 Elm 0.19 时无法读取未定义的属性“Elm”
- java - 如何使用 TomEE 保护 jax-rs Web 服务?
- c# - Async Task.Run 在自托管的 Web 服务中运行 - 只要它有效,它就是“错误使用”吗?
- python - 无法加入字符串类型的熊猫数据框
- php - Laravel Passport 不生成令牌
- javascript - 网格视图未正确显示
- c++ - 如何通过引用将 c++ 字符串分配给另一个字符串
- three.js - 如何使用three.js旋转平面?