3 条题解

  • 2
    @ 2024-1-26 15:45:01

    递归实现指数型枚举

    #include <queue>
    #include <math.h>
    #include <stack>
    #include <vector>
    #include <stdio.h>
    #include <iostream>
    #include <vector>
    #include <iomanip>
    #include <string.h>
    #include<cstring>
    #include <algorithm>
    using namespace std;
    #define LL long long
    const int N = 1e2 + 10;
    const int INF = 0x3f3f3f3f;
    using namespace std;
    int n , a[N]; 
    void f(int pre ,int step)
    {
    	if(step > 0)
    	{
    		for(int i = 0 ;i < step ; i++)
    		{
    			cout << a[i] <<" ";
    		}
    		cout << endl ;
    	}
    	for(int i = pre + 1 ;i <= n ; i++ )
    	{
    		a[step] = i ;
    		f(i , step + 1);
    	}
    }
    int main()
    {
    	cin >> n ;
    	f( 0 , 0 );
    	return 0;
    }
    
    • 1
      @ 2025-4-19 21:59:42

      #include #include <math.h> #include #include #include <stdio.h> #include #include #include #include <string.h> #include #include using namespace std; #define LL long long const int N = 1e2 + 10; const int INF = 0x3f3f3f3f; using namespace std; int n , a[N]; void f(int pre ,int step) { if(step > 0) { for(int i = 0 ;i < step ; i++) { cout << a[i] <<" "; } cout << endl ; } for(int i = pre + 1 ;i <= n ; i++ ) { a[step] = i ; f(i , step + 1); } } int main() { cin >> n ; f( 0 , 0 ); return 0; } 1.

      • 1
        @ 2025-2-11 19:05:41

        蒟蒻の题解

        这道题大部分人第一眼看上去会觉得难,为什么呢?因为他这里的题意太过于《抽象》,我们看数据可能会好懂一些。 其实我们仔细看数据的话,一些学过排列组合的同学就会说了:

        这不就是几个排列组合叠加在一起嘛。

        嗯,是的,这道题你仔细看数据就会发现,那么恭喜你,你已经成功 想出了这道题的基本思路,这道题只需要用dfs去模拟排列组合的过程,然后再多来几次就行啦。


        没错,就是这么“简单”

        #include<bits/stdc++.h>
        using namespace std;
        int n,m;
        int b[20];
        void dfs(int s,int last){
        	if(s>m){
        		for(int i=1;i<=m;i++)
        			cout<<b[i]<<" ";
        		cout<<endl;
        		return;
        	}for(int i=last+1;i<=n;i++){
        			b[s]=i;
        			dfs(s+1,i);
        	}
        }
        int main(){
        	cin>>n;
        	for(m=1;m<=n;m++){
        		dfs(1,0);
        	}
        	return 0;
        }
        

        bye

        • 1

        信息

        ID
        5
        时间
        1000ms
        内存
        128MiB
        难度
        4
        标签
        递交数
        610
        已通过
        288
        上传者