首页 > 其他分享 >非递归 求所有组合

非递归 求所有组合

时间:2023-02-21 19:00:52浏览次数:25  
标签:NN 递归 组合 ++ LL 所有 Kmax Con ve


从[0,NN-1]这NN个数里面,找到所有组合 例如Con(5,3)

0 1 2
0 1 3
0 1 4
0 2 3
0 2 4
0 3 4
1 2 3
1 2 4
1 3 4
2 3 4

类似于加法器,初始是0,1,2
每次给最后的一个数字加一
令Kmax=3,k在[0,Kmax]
则第k位置的数字进位的要求是
ve[k] >= N - (Kmax - k)
直到ve[0]>0,循环结束

#include <vector>
#include <iostream>

using namespace std;

using LL = long long int;

#define debug(x) cout<<#x<<": "<<x<<endl;


bool Con(LL NN, LL MM) {

LL Kmax = MM;
LL k = Kmax;
LL N = NN;

vector<LL> ve(Kmax + 1, 0);

for (LL i = 1; i <= Kmax; i++) {
ve[i] = i - 1;
}

do {

for (LL i = 1; i <= Kmax; i++) {
cout << ve[i] << " ";
}
cout << endl;

ve[k]++;
if (ve[k] >= N) {
while (k >= 1 && ve[k] >= N - (Kmax - k)) {
k--;
ve[k]++;
}
k++;
while (k <= Kmax) {
ve[k] = ve[k - 1] + 1;
k++;
}
k = Kmax;
}

} while (ve[0] == 0);

return true;
}

int main()
{
Con(5,3);
return 0;
}


标签:NN,递归,组合,++,LL,所有,Kmax,Con,ve
From: https://blog.51cto.com/liyunhao/6077035

相关文章

  • 有效的括号&删除字符串中的所有相邻重复项& 逆波兰表达式求值
    一、有效的括号20.有效的括号1.方法概述使用栈来解决,遍历该字符串,如果是左括号,就将其对应的右括号存进栈,然后和栈顶元素进行匹配,如果匹配为相同的字符,栈顶的元素则弹......
  • leetcode 37. 解数独 递归回溯
    递归(效率较低)#include<iostream>#include<vector>usingnamespacestd;#definedebug(x)cout<<#x<<":"<<x<<endl;classSolution{public:voidsolveSud......
  • Powershell获取当前文件夹内所有一级子文件夹大小
    需求:查看Windows某个文件夹所有一级子文件夹大小,并按照从大到小排序 解决方案:使用Powershell脚本 脚本内容如下functionfilesize(){ [string]$filepath......
  • Pandas显示所有行
    当你试图打印一个超过预定义行和列数的大数据框架时,结果将被截断。请看下面的例子,以便更好地理解。#importingnumpylibraryimportpandasaspd#importingdiabet......
  • python 递归创建文件夹
    os.makedirs(name,mode=0o777,exist_ok=False)作用用来创建多层目录(单层请用os.mkdir)参数说明 name:你想创建的目录名mode:要为目录设置的权限数字模式,默认的模式为......
  • 父节点递归查询和子节点递归查询函数
    本文为博主原创,未经允许不得转载:由于在项目中用到了向上查询父节点的递归查询和向下查询子节点查询的递归查询,由于在实现过程中,写递归查询的sql函数花费了较长的时间,所以在......
  • 读Java实战(第二版)笔记16_组合式异步编程
    1. 同步API1.1. 阻塞式调用1.2. 调用了某个方法,调用方在被调用方执行的过程中会等待,被调用方执行结束返回,调用方取得被调用方的返回值并继续运行2. 异步API2.1. ......
  • 商标干货!所有企业都值得收藏!
    商标,是用于识别和区分不同商品或服务来源的标志,代表了企业的产品质量和服务保证,可以说,商标承载了一个企业的信誉,是企业参与市场竞争的重要工具,对于企业及其产品的重要性不言......
  • 算法刷题 Day 44 | ● 完全背包 ● 518. 零钱兑换 II ● 377. 组合总和 Ⅳ
    力扣上没有纯粹的完全背包的题目,所以大家看本篇了解一下完全背包的理论后面的两道题目,都是完全背包的应用,做做感受一下完全背包视频讲解:https://www.bilibili.c......
  • jQuery获取所有的单选框,并且进行遍历
    代码:实现了遍历所有的单选框,如果其值为1,则变为选中状态。$(document).ready(function(){//表单选择器,获取到所有的单选框,使用each进行遍历,i为索引,n为dom对......