This documentation is automatically generated by online-judge-tools/verification-helper
View the Project on GitHub Luzhiled/syakyo-library
#include "src/graph/class/dynamic-graph.hpp"
#pragma once #include "src/cpp-template/header/size-alias.hpp" #include <cassert> #include <vector> namespace luz { template < typename Edge > class DynamicGraph { using Edges = std::vector< Edge >; protected: std::vector< Edges > g; usize edge_count; public: using cost_type = typename Edge::cost_type; DynamicGraph() = default; explicit DynamicGraph(usize n): g(n), edge_count(0) {} usize size() const { return g.size(); } void add_directed_edge(usize from, usize to, cost_type cost = 1) { g[from].emplace_back(from, to, cost, edge_count++); } void add_undirected_edge(usize u, usize v, cost_type cost = 1) { assert(u != v); g[u].emplace_back(u, v, cost, edge_count); g[v].emplace_back(v, u, cost, edge_count++); } Edges operator[](const usize &v) { return g[v]; } const Edges operator[](const usize &v) const { return g[v]; } }; } // namespace luz
#line 2 "src/graph/class/dynamic-graph.hpp" #line 2 "src/cpp-template/header/size-alias.hpp" #include <cstddef> namespace luz { using isize = std::ptrdiff_t; using usize = std::size_t; } #line 4 "src/graph/class/dynamic-graph.hpp" #include <cassert> #include <vector> namespace luz { template < typename Edge > class DynamicGraph { using Edges = std::vector< Edge >; protected: std::vector< Edges > g; usize edge_count; public: using cost_type = typename Edge::cost_type; DynamicGraph() = default; explicit DynamicGraph(usize n): g(n), edge_count(0) {} usize size() const { return g.size(); } void add_directed_edge(usize from, usize to, cost_type cost = 1) { g[from].emplace_back(from, to, cost, edge_count++); } void add_undirected_edge(usize u, usize v, cost_type cost = 1) { assert(u != v); g[u].emplace_back(u, v, cost, edge_count); g[v].emplace_back(v, u, cost, edge_count++); } Edges operator[](const usize &v) { return g[v]; } const Edges operator[](const usize &v) const { return g[v]; } }; } // namespace luz