6 条题解

  • 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
      @ 2025-3-20 11:49:18

      I AK IOI

      • 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
              难度
              2
              标签
              递交数
              436
              已通过
              253
              上传者