5 条题解

  • 1
    @ 2025-4-19 22:00:24

    #include <stdio.h> int n,m; void dfs(int p,int sum,int state) { if(sum + n - p<m) return; if(summ) { for(int i=0;i<n;i++) if(state>>i&1) printf("%d ",i+1); printf("\n"); return; } if(pn) return; dfs(p+1,sum+1,state|1<<p); dfs(p+1,sum,state); } int main() { scanf("%d%d",&n,&m); dfs(0,0,0); }

    • ``
    • 1
      @ 2023-12-10 11:22:37
      #include <bits/stdc++.h>
      using namespace std;
      const int N=1e2+10;
      const int INF=0x3f3f3f3f;
      int n,m,a[N];
      void dfs(int x)
      {
      	if(x==n)
      	{
      		for(int i=1;i<=x;i++)
      		{
      			cout<<a[i];
      		}
      		cout<<endl;
      		return;
      	} 
      	for(int i=a[x]+1;i<=m;i++)
      	{
      		a[x+1]=i;
      		dfs(x+1);
      		a[x+1]=0;
      	}
      }
      int main()
      {
      	cin>>m>>n;
      	dfs(0);
      	return 0;
      }
      
      • 1
        @ 2023-5-2 19:05:39
        #include <stdio.h>
        int n,m;
        void dfs(int p,int sum,int state)
        {
            if(sum + n - p<m) return; 
            if(sum==m)
            {
                for(int i=0;i<n;i++)
                    if(state>>i&1)
                        printf("%d ",i+1);
                printf("\n");
                return;
            }
            if(p==n) return;
            dfs(p+1,sum+1,state|1<<p);
            dfs(p+1,sum,state);
        }
        int main()
        {
            scanf("%d%d",&n,&m);
            dfs(0,0,0);
        }
        
        • -1
          @ 2024-6-23 11:30:20
          #include<bits/stdc++.h>
          using namespace std;
          int boxes[25],n,m,numbers[105];
          void dfs(int s){
          	if(s > m){
          		for(int i = 1;i <= m;i++){
          			cout << boxes[i] << " ";
          		}
          		cout << endl;
          		return;
          	}
          	for(int i = boxes[s - 1];i <= n;i++){
          		if(not numbers[i]){
          			numbers[i] = 1;
          			boxes[s] = i;
          			dfs(s + 1);
          			numbers[i] = 0;
          		}
          	}
          }
          int main(){
          	cin >> n >> m;
          	boxes[0] = 1;
          	dfs(1);
          
          }
          
          • -1
            @ 2023-4-1 19:52:23
            #include <queue>
            #include <math.h>
            #include <stack>
            #include <stdio.h>
            #include <iostream>
            #include <vector>
            #include <iomanip>
            #include <string.h>
            #include <algorithm>
            using namespace std;
            #define LL long long
            const int N = 1e5 + 10;
            const int INF = 0x3f3f3f3f;
            int a[N];
            int n ,m;
            void f(int last , int step)
            {
            	if(step == m)
            	{
            		for(int i = 0 ; i < step ; i++)
            			cout << a[i] << " ";
            		cout << endl;
            		return ;
            	}
            	for(int i = last +1 ; i <= n ; i++)
            	{
            		a[step] = i;
            		f(i , step + 1);
            	}
            }
            int main()
            {
            	cin >> n >> m;
            	f(0 , 0);
            	return 0;
            }
            
            • 1

            信息

            ID
            6
            时间
            1000ms
            内存
            128MiB
            难度
            3
            标签
            递交数
            453
            已通过
            259
            上传者