首页 > 其他分享 >77. 组合C

77. 组合C

时间:2024-03-07 19:55:32浏览次数:21  
标签:returned 组合 nowk int returnSize 77 array

回溯其实就是抽象图的遍历过程

这题数据实在太离谱了。

/**
 * Return an array of arrays of size *returnSize.
 * The sizes of the arrays are returned as *returnColumnSizes array.
 * Note: Both returned array and *columnSizes array must be malloced, assume caller calls free().
 */
int temp[20];
void dfs(int** array,int*returnSize,int n,int k,int nowk,int index){//nowk 表示选了有几个数
    if(nowk>k) return;
    if(nowk==k){
        for(int i=0;i<k;i++){
            array[*returnSize][i]=temp[i];
        }
        (*returnSize)++;
        return;
    }
    for(int i=index;i<=n;i++){
        temp[nowk]=i;
        dfs(array,returnSize,n,k,nowk+1,i+1);
        temp[nowk]=0;
    }
}

int** combine(int n, int k, int* returnSize, int** returnColumnSizes) {
    *returnSize=0;
    int** array=(int**)malloc(sizeof(int*)*200000);
    for(int i=0;i<200000;i++) array[i]=(int*)malloc(sizeof(int)*k);
    for(int i=0;i<20;i++) temp[i]=0;
    dfs(array,returnSize,n,k,0,1);
    int* column=(int*)malloc(sizeof(int)*(*returnSize));
    for(int i=0;i<*returnSize;i++) column[i]=k;
    *returnColumnSizes=column;
    return array;
}

 

标签:returned,组合,nowk,int,returnSize,77,array
From: https://www.cnblogs.com/llllmz/p/18059636

相关文章

  • 【力扣】组合总数(回溯法)
    题目描述#include<iostream>#include<vector>usingnamespacestd;vector<vector<int>>res;vector<int>path;intaccumulate(vector<int>path){ intsum; for(inti=0;i<path.size();i++){ sum+=path[i]; } r......
  • 【力扣】电话号码的组合(回溯法)
    问题描述classSolution{public:vector<string>res;stringpath;//charA[26]={'a','b','c','d','e','f','g',//'h','i','j','k&......
  • 代码随想录算法训练营第二天| 977.有序数组的平方、 209.长度最小的子数组、 59.螺旋
    977.有序数组的平方https://leetcode.cn/problems/squares-of-a-sorted-array/description/publicstaticint[]sortedSquares(int[]nums){intleft=0;intright=nums.length-1;int[]result=newint[nums.length];intwrite=......
  • 卡农 -- HNOI2011 -- DP&组合
    卡农--\(HNOI2011\)$$luogu$$$$HZOI$$题意给定一个集合$A={1\lex\len|x}$,求出其\(m\)个不相同的且不为空集的子集,使得第\(i\)个元素的在所有选出的子集中出现的次数\(appear_i\mod2=0\)题解首先一个已知结论:对于一个\(A\)这样的集合,他......
  • 1277. 维护序列
    #include<iostream>#include<stdio.h>#include<algorithm>#include<string>#defineFor(i,j,n)for(inti=j;i<=n;++i)usingnamespacestd;typedeflonglongLL;constintN=1e5+5;intn,m,P,a[N];structnod......
  • 【力扣】求组合(回溯算法)
    题目描述2.以下是回溯算法的模版classSolution{private:vector<vector<int>>res;vector<int>path;//这个变量名还是设为path更合适voidbacktrace(intn,intk,intstartindex){//递归结束条件,这个是根据问题要求修改的if(path.s......
  • 初三组合恒等式和二项式定理练习 题解
    A.多项式推柿子:\[\begin{aligned}&\sum\limits_{k=0}^{n}b_{k}(x-t)^{k}\\=&\sum\limits_{k=0}^{n}b_{k}\sum\limits_{i=0}^{k}\binom{k}{i}x^{i}(-t)^{k-i}\\=&\sum\limits_{0\leqslanti\leqslantk\leqslantn}\binom{k}{i}b_{......
  • 【RS】Sentinel-2哨兵二号数据预处理(大气校正、重采样、波段组合)
    ​    刚分享过新版欧空局的数据下载教程,正好把哨兵2号预处理的教程也分享一下,主要就是使用官方插件Sen2or对L1C级数据进行大气校正,使用SNAP软件对L2A级数据进行重采样并导出ENVI可以打开的格式,最后使用ENVI对重采样后的数据进行波段组合,以便于后期的定量分析。1.软件......
  • solution-cf877d
    题解CF877D【OlyaandEnergyDrinks】原题一道几乎板子的广搜题。(然而我调了10几次才过我们只需要在广搜板子的基础上添加移动$1-k$步的部分即可就像这样:inth[]={-1,1,0,0};intl[]={0,0,-1,1};for(inti=0;i<4;i++){ for(intj=1;j<=k;j......
  • SQL 两个表组合查询
    几种常用的方法:1.内连接(INNERJOIN)内连接返回两个表中都有匹配的行。SELECTA.*,B.*FROM表AASAINNERJOIN表BASBONA.某字段=B.某字段2.左连接(LEFTJOIN)左连接返回左表(表A)的所有行,即使右表(表B)中没有匹配的行。SELECTA.*,B.*FROM表AASALEFTJOI......