Lib/区別しない集合に分ける全列挙
code:cpp
ll n;
void p(vector<ll> v) {
for (ll a : v) cout << (char)('a' + a);
cout << endl;
return;
}
void saiki(vector<ll> v, ll k) {
if (v.size() == n) {
p(v);
return;
}
rep(i, k + 1) {
v.push_back(i);
ll next = (i == k) ? k + 1 : k;
saiki(v, next);
v.pop_back();
}
}
signed main() {
cin >> n;
vector<ll> v;
saiki(v, 0);
}
https://atcoder.jp/contests/panasonic2020/tasks/panasonic2020_d
https://atcoder.jp/contests/panasonic2020/submissions/74452047
当然 O(N!)
#Lib