zoukankan      html  css  js  c++  java
  • 生成可重集的排序 (白书P184)

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    int ans[6];
    int book[6],a[6],n;
    void dfs(int cnt)
    {
    	int i,j;
    	if(cnt==n) {
    		for(i=0;i<n;i++) 
    		if(!i) printf("%d",ans[i]);
    		else printf(" %d",ans[i]);
    		printf("
    ");
    		return ;
    	}
    	for(i=0;i<n;i++) {
    		if(book[i]) continue;
    	    book[i]=1;
    		ans[cnt]=a[i];
    		dfs(cnt+1);
    		book[i]=0;
    		while(i<n&&a[i]==a[i+1]) i++;
    	}
    }
    
    int main()
    {
    	while(cin>>n) {
    		memset(book,0,sizeof(book));
    		memset(ans,0,sizeof(ans));
    		for(int i=0;i<n;i++) cin>>a[i];
    		dfs(0);
    	}
    	
    }

  • 相关阅读:
    ASP.NET
    ASP.NET
    MSSQL
    ASP.NET
    HTML+CSS+JS
    HTML+CSS
    ASP.NET、WinForm、C#
    MSSQL
    WinFrom
    线性代数应该这样学一
  • 原文地址:https://www.cnblogs.com/yxysuanfa/p/7196911.html
Copyright © 2011-2022 走看看