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;
} 베리야..