procon

This documentation is automatically generated by online-judge-tools/verification-helper

View the Project on GitHub mugen1337/procon

:warning: Other/EnumerateDivision.hpp

Code

/*
Nの分割方法の列挙
N=50 -> 200000 程度
verified : https://atcoder.jp/contests/abc226/submissions/27125989
*/
vector<vector<int>> enumerate_division(int N){
    vector<vector<int>> ret;
 
    function<void(vector<int>,int,int)> rec=[&](vector<int> v,int S,int K){
        if(S==0){
            ret.push_back(v);
            return ;
        }
 
        for(int t=min(S,K);t>0;t--){
            v.push_back(t);
            rec(v,S-t,t);
            v.pop_back();
        }
    };
    rec({},N,N);
    return ret;
}
#line 1 "Other/EnumerateDivision.hpp"
/*
Nの分割方法の列挙
N=50 -> 200000 程度
verified : https://atcoder.jp/contests/abc226/submissions/27125989
*/
vector<vector<int>> enumerate_division(int N){
    vector<vector<int>> ret;
 
    function<void(vector<int>,int,int)> rec=[&](vector<int> v,int S,int K){
        if(S==0){
            ret.push_back(v);
            return ;
        }
 
        for(int t=min(S,K);t>0;t--){
            v.push_back(t);
            rec(v,S-t,t);
            v.pop_back();
        }
    };
    rec({},N,N);
    return ret;
}
Back to top page