[AtCoder] パナソニックプログラミングコンテスト2020 D – String Equivalence

2020年12月15日

問題

方針

深さ優先探索を使うらしい。

コード

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

int N;

void dfs(string s) {
    if (s.length() == N) {
        cout << s << "\n";
        return;
    }
    char up = 'a';
    for (char c : s) {
        up = max(up, c);
    }
    for (char c = 'a'; c <= up + 1; c++) {
        dfs(s + c);
    }
    
} 

int main() {
    cin >> N;
    string s = "a";
    dfs(s);
    return 0;
}

感想

こういう問題は解法を暗記するのが良い。