Skip to content

giogam/DLX

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DLX

C++ 14 & STL Compliant - Exact Cover Solver - Quick usage example

    int main( int argc, char **argv)
    {
	auto print_sol = [](DLXResult &result)
	{
	    std::array<int,7> set_row = { 0, 0, 0, 0, 0, 0, 0 };

	    for (const auto sol : result.solutions)
	    {
	        for (const auto el : sol)
                {
                    auto e = el;
                    do
                    {
                        set_row[std::dynamic_pointer_cast<ColumnObject>(e->C)->get_id()] =  1;
                        e = e->R;
                    } while (e != el);
                    std::cout << set_row << std::endl;
                    set_row.fill(0);
                }
            }
        };

        std::vector<std::vector <int>> set = 
        { 
            {0, 0, 1, 0, 1, 1, 0},
            {1, 0, 0, 1, 0, 0, 1},
            {0, 1, 1, 0, 0, 1, 0},
            {1, 0, 0, 1, 0, 0, 0},
            {0, 1, 0, 0, 0, 0, 1},
            {0, 0, 0, 1, 1, 0, 1} 
        };
	
        DLXSolver Solver(set);

        DLXResult result;
        Solver.solve(result);

        print_sol(result);

        return 0;
    }

About

STL Compliant - Exact Cover Solver

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors