#ifndef DECREMENTAL_TC_H_ #define DECREMENTAL_TC_H_ #include "algorithm/roditty_zwick.h" #include "algorithm/tarjan.h" #include "algorithm/breadth_first_search.h" #include "tree/breadth_first_tree.h" #include using namespace graph; namespace algo { template class DecrementalTC : public RodittyZwick { public: DecrementalTC(Digraph G) : G(G) {} void init(); bool query(const T& u, const T& v); void remove(const T& u, const T& v); private: Digraph G; // Every vertex u has a pointer C(u) to the component containing it std::map> C; // The aggregation of edges each component contains struct LLE { std::forward_list Ein; std::forward_list Eout; std::forward_list Eint; }; std::map, LLE> E; // Connect each component with a tree of all reachable components std::map, std::set>> TC; }; template void DecrementalTC::init() { } template bool DecrementalTC::query(const T& u, const T& v) { return false; } template void DecrementalTC::remove(const T& u, const T& v) { } } // namespace algo #endif