[恢]hdu 1716

别来无恙 提交于 2020-02-13 07:42:16

2011-12-21 02:04:56

地址:http://acm.hdu.edu.cn/showproblem.php?pid=1716

题意:中文。

mark:dfs。

代码:

# include <stdio.h># include <algorithm>using namespace std ;int a[4], num[4], tab[10] ;int flag ;void dfs(int n){    int i ;    if (n == 4)    {        if (flag == 0) flag = 1 ;        else printf (" ") ;        printf ("%d%d%d%d", num[0], num[1], num[2], num[3]) ;    }    for (i = 0 ; i < 10 ; i++)    {        if (tab[i] != 0)        {            num[n] = i ;            tab[i]-- ;            dfs(n+1) ;            tab[i]++ ;        }    }}int main (){    char ch ;    int i, nCase = 1 ;    while (~scanf ("%d %d %d %d%*c", &a[0], &a[1], &a[2], &a[3]))    {        if (!(a[0] || a[1] || a[2] || a[3]))            break ;        for (i = 0 ; i < 10 ; i++)            tab[i] = 0 ;        for (i = 0 ; i < 4 ; i++)            tab[a[i]] ++ ;        if (nCase++ != 1) printf ("\n") ;        for (i = 1 ; i < 10 ; i++)        {            if (tab[i] != 0)            {                num[0] = i ;                tab[i]-- ;                flag = 0 ;                dfs(1) ;                tab[i]++ ;                printf ("\n") ;            }        }    }    return 0 ;}



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!