2 solutions

  • 1
    @ 2024-8-8 13:44:16
    #include<bits/stdc++.h>
    using namespace std;
    const int N=30;
    int ans[N],n,m;
    bool st[N];
    void dfs(int u,int x)
    {
    	if(u==m+1)
    	{
    		for(int i=1;i<=m;i++)
            {
    			cout<<ans[i]<<" ";
            }
    		cout<<endl;
    		return;
    	}
    	for(int i=x;i<=n;i++)
        {
    		if(!st[i])
    		{
    			st[i]=1;
    			ans[u]=i;
    			dfs(u+1,i+1);
    			st[i]=0;
    		}
        }
    }
    int main()
    {
    	cin>>n>>m;
    	dfs(1,1);
    	return 0;
    }
    
    • -2
      @ 2024-7-9 11:29:21
      #include<bits/stdc++.h>
      using namespace std;
      const int N=30;
      int ans[N],n,m;
      bool st[N];
      void dfs(int u,int x)
      {
      	if(u==m+1)
      	{
      		for(int i=1;i<=m;i++)
      			cout<<ans[i]<<" ";
      		cout<<endl;
      		return 																												;
      	}
      	for(int i=x;i<=n;i++)
      		if(!st[i])
      		{
      			st[i]=1;
      			ans[u]=i;
      			dfs(u+1,i+1);
      			st[i]=0;
      		}
      }
      int main()
      {
      	cin>>n>>m;
      	dfs(1,1);
      	return 0;
      }
      
      • 1

      Information

      ID
      232
      Time
      1000ms
      Memory
      256MiB
      Difficulty
      3
      Tags
      # Submissions
      40
      Accepted
      11
      Uploaded By