C 언어 전체 배열의 귀속 쓰기

1117 단어 전체 배열
컴퓨터 화이트닝 블로그 컨텐츠로 학습 요약** 독자만 참조**
A문제는 전체 배열을 사용하고 쓸 줄 모르며 일종의 **귀속법 전체 배열을 배웠습니다**
깊은 검색의 귀속 표기 사상을 모방하여 매번 하나의 배열 방식을 얻고 하나의 방식을 저장한다. 왜냐하면 전체 배열>﹏<시간의 복잡도가 비교적 높기 때문이다.
#include 

int base[15],mark[15],cache[15],res[int(1e7)][15];		//base ,mark ,
                                                        //cache ,res 
int number,ans;		//number ,ans 

void dfs(int cache_index)	// cache , 1 cache 
{
    for (int i=1;i<=number;i++)
    {
        if (mark[i]==1)
            continue;
        cache[cache_index]=base[i];
        if (cache_index==number)
        {
            ans++;
            for (int j=1;j<=number;j++)
                res[ans][j]=cache[j];
            return;
        }
        mark[i]=1;
        dfs(cache_index+1);
        mark[i]=0;
    }
    return ;
}

int main()
{
    while(~scanf("%d",&base[++number]));
    number--;
    dfs(1);
    for (int i=1;i<=ans;i++)
    {
        for (int j=1;j<=number;j++)
            printf("%d ",res[i][j]);
        printf("
"); } return 0; }

베리야..

좋은 웹페이지 즐겨찾기