以下の内容はhttps://hotman78.hatenablog.com/entry/2020/10/06/114902より取得しました。


え、10重ループくらい10秒でかけますよね?これってゴリ押し解法なんですか?

これを

#define extrep(v,...) for(auto v:make_mat_impl({__VA_ARGS__}))
vector<vector<long long>> make_mat_impl(vector<long long> v){
    if(v.empty())return vector<vector<long long>>(1,vector<long long>());
    long long n=v.back();
    v.pop_back();
    vector<vector<long long>> ret;
    vector<vector<long long>> tmp=make_mat_impl(v);
    for(auto e:tmp)for(long long i=0;i<n;++i){
        ret.push_back(e);
        ret.back().push_back(i);
    }
    return ret;
}

こう

int main(){
    extrep(v,3,4,5){
        cout<<v[0]<<v[1]<<v[2]<<endl;
    }
}

出力結果

000
001
002
003
004
010
011
012
013
014
020
021
022
023
024
030
031
032
033
034
100
101
102
103
104
110
111
112
113
114
120
121
122
123
124
130
131
132
133
134
200
201
202
203
204
210
211
212
213
214
220
221
222
223
224
230
231
232
233
234

内部でDFSしてるだけです




以上の内容はhttps://hotman78.hatenablog.com/entry/2020/10/06/114902より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14