[C言語]白駿15650:NとM(2)
https://velog.io/@seochan99/15650-N%EA%B3%BC-M-2今回もこの人の助けを得ました.この4つのタイプを理解して、すぐに出してみてください.
回帰問題を探して解決します.
に答える
#include <stdio.h>
int n, m;
int result[1000];
int check[1000];
void DFS(int depth, int cut)
{
int i;
if (depth == m)
{
for (int i = 0; i < m; i++)
printf("%d ", result[i]);
printf("\n");
}
else
{
for (i = 1; i <= n; i++)
{
if (check[i] == 0 && cut < i)
{
result[depth] = i;
check[i] = 1;
DFS(depth + 1, i);
check[i] = 0;
}
}
}
}
int main(void)
{
scanf("%d %d", &n, &m);
DFS(0, 0);
return 0;
}
15649の問題は私に繰り返しの数字を印刷させて、これはDFSが回転するためで、2番目のfor文の中で私はいつも1から始めます!なぜなら、i=2でDFS(1)が起動すると(2,1)も出力され、前に出力された(1,2)と重なるので、cutという変数を追加してiが1より大きくなるように…!
そこでチェック以外の首都を出力すればいいのですが…!では…!
Reference
この問題について([C言語]白駿15650:NとM(2)), 我々は、より多くの情報をここで見つけました https://velog.io/@kimmainsain/C언어-백준-15650-N과-M-2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol