[白俊]15651号:NとM(3)


回答日:2021-09-16

質問する


質問リンク:https://www.acmicpc.net/problem/15651

アクセスと解析


この問題は15649号問題で自分を再選択する条件を追加した.
したがって、15649回答で数値が選択されているかどうかのアクセス配列と、それに対応する論理が削除される.
これにより、毎回すべての数字を閲覧することができます.
説明が少し難解に書かれていて、簡単に言えば重複シーケンスが求められています.

コード#コード#

#include <iostream>

using namespace std;

int N, M;
int number[9];

void dfs(int cnt) {
    if (cnt == M) {
        for (int i = 0; i < M; i++) {
            cout << number[i] << ' ';
        }
        cout << '\n';
        return;
    }
    for (int i = 1; i <= N; i++) {
        number[cnt] = i;
        dfs(cnt + 1);
    }
}

int main()
{
    cin >> N >> M;
    dfs(0);
    
    return 0;
}

結果



フィードバック


後追跡の概念が徐々に形成されているようだ.