Graph Theory Concepts
This page outlines some concepts in graph theory, which are not all common in OI. For OIers, it is sufficient to master the basic parts on this page. If you encounter unfamiliar concepts during learning, you can refer back here.
Warning
Definitions related to graph theory often vary across different textbooks. When encountering them, judge based on the context.
Graph
A graph is a pair \(G=(V(G), E(G))\). Here, \(V(G)\) is a non-empty set called the vertex set. Each element in \(V\) is called a vertex or node, abbreviated as point. \(E(G)\) is the set of edges between the vertices in \(V(G)\), called the edge set.
We often denote a graph as \(G=(V,E)\).
When both \(V\) and \(E\) are finite sets, \(G\) is called a finite graph.
When \(V\) or \(E\) is an infinite set, \(G\) is called an infinite graph.
Graphs can be undirected graphs, directed graphs, mixed graphs, etc.
If \(G\) is an undirected graph, then each element in \(E\) is an unordered pair \((u, v)\), called an undirected edge, or simply edge, where \(u, v \in V\). Let \(e = (u, v)\), then \(u\) and \(v\) are called the endpoints of \(e\).
If \(G\) is a directed graph, then each element in \(E\) is an ordered pair \((u, v)\), sometimes written as \(u \to v\), called a directed edge or arc. When no confusion arises, it can also be called an edge. Let \(e = u \to v\), then \(u\) is called the tail of \(e\), and \(v\) is called the head of \(e\). The tail and head are also called the endpoints of \(e\). We say \(u\) is a direct predecessor of \(v\), and \(v\) is a direct successor of \(u\).
Why is the tail the start and the head the end?
Edges are usually represented by arrows, and arrows point from the "tail" to the "head".
If \(G\) is a mixed graph, then \(E\) contains both directed edges and undirected edges.
If each edge \(e_k=(u_k,v_k)\) of \(G\) is assigned a number as its weight, then \(G\) is called a weighted graph. If all weights are positive real numbers, \(G\) is called a positively weighted graph.
The number of vertices \(\left| V(G) \right|\) of graph \(G\) is also called the order of \(G\).
Informally, a graph consists of several points and edges connecting them.
Adjacency
In an undirected graph \(G = (V, E)\), if vertex \(v\) is an endpoint of edge \(e\), then \(v\) and \(e\) are said to be incident or adjacent. For two vertices \(u\) and \(v\), if there exists an edge \((u, v)\), then \(u\) and \(v\) are said to be adjacent.
The neighborhood of a vertex \(v \in V\) is the set of all vertices adjacent to it, denoted \(N(v)\).
The neighborhood of a vertex set \(S\) is the set of all vertices adjacent to at least one vertex in \(S\), denoted \(N(S)\), i.e.:
Simple Graph
Loop: For an edge \(e = (u, v)\) in \(E\), if \(u = v\), then \(e\) is called a loop.
Multiple edge: If there exist two identical elements (edges) \(e_1, e_2\) in \(E\), they are called (a set of) multiple edges.
Simple graph: If a graph has no loops or multiple edges, it is called a simple graph. In a simple undirected graph with at least two vertices, there must exist vertices with the same degree. (Pigeonhole principle)
If a graph has loops or multiple edges, it is called a multigraph.
Warning
In an undirected graph, \((u, v)\) and \((v, u)\) count as one set of multiple edges, whereas in a directed graph, \(u \to v\) and \(v \to u\) are not considered multiple edges.
Warning
In problems, unless specified otherwise, loops and multiple edges may exist, and special consideration is needed when solving.
Degree
The number of edges incident to a vertex \(v\) is called the degree of that vertex, denoted \(d(v)\). Specifically, for an edge \((v, v)\), each such edge contributes \(2\) to \(d(v)\).
For a simple undirected graph, \(d(v) = \left| N(v) \right|\).
Handshaking lemma (also known as the fundamental theorem of graph theory): For any undirected graph \(G = (V, E)\), \(\sum_{v \in V} d(v) = 2 \left| E \right|\).
Corollary: In any graph, the number of vertices with odd degree is even.
If \(d(v) = 0\), then \(v\) is called an isolated vertex.
If \(d(v) = 1\), then \(v\) is called a leaf vertex or pendant vertex.
If \(2 \mid d(v)\), then \(v\) is called an even vertex.
If \(2 \nmid d(v)\), then \(v\) is called an odd vertex. The number of odd vertices in a graph is even.
If \(d(v) = \left| V \right| - 1\), then \(v\) is called a universal vertex.
For a graph, the minimum degree among all vertices is called the minimum degree of \(G\), denoted \(\delta (G)\); the maximum is called the maximum degree, denoted \(\Delta (G)\). That is: \(\delta (G) = \min_{v \in G} d(v)\), \(\Delta (G) = \max_{v \in G} d(v)\).
In a directed graph \(G = (V, E)\), the number of edges starting from a vertex \(v\) is called the out-degree of that vertex, denoted \(d^+(v)\). The number of edges ending at \(v\) is called the in-degree, denoted \(d^-(v)\). Clearly \(d^+(v)+d^-(v)=d(v)\).
For any directed graph \(G = (V, E)\):
For an undirected graph \(G = (V, E)\), if the degree of every vertex is a fixed constant \(k\), then \(G\) is called a \(k\)-regular graph.
If given a sequence a, we can find a graph G whose degree sequence is a, then a is said to be graphic.
If given a sequence a, we can find a simple graph G whose degree sequence is a, then a is said to be simply graphic.
Path
Walk: A walk is a sequence of edges connecting a sequence of vertices, which can be finite or infinite in length. Formally, a finite walk \(w\) is a sequence of edges \(e_1, e_2, \ldots, e_k\) such that there exists a sequence of vertices \(v_0, v_1, \ldots, v_k\) satisfying \(e_i = (v_{i-1}, v_i)\) for \(i \in [1, k]\). Such a walk can be abbreviated as \(v_0 \to v_1 \to v_2 \to \cdots \to v_k\). Usually, the number of edges \(k\) is called the length of the walk (if edges are weighted, length usually refers to the sum of edge weights along the walk; problems may define it otherwise).
Trail: For a walk \(w\), if \(e_1, e_2, \ldots, e_k\) are all distinct, then \(w\) is called a trail.
Path (also called simple path): For a trail \(w\), if the sequence of vertices it connects are all distinct, then \(w\) is called a path.
Circuit: For a trail \(w\), if \(v_0 = v_k\), then \(w\) is called a circuit.
Cycle (also called simple circuit): For a circuit \(w\), if \(v_0 = v_k\) is the only pair of vertices that repeats in the vertex sequence, then \(w\) is called a cycle.
Warning
Definitions of paths may vary in different contexts. For example, "path" may refer to "walk" as defined here, and "cycle" may refer to "circuit" as defined here. If you see similar terms in problems without special clarification like "simple path"/"non-simple path" (i.e., "walk" here), it's best to ask for clarification.
Subgraph
For a graph \(G = (V, E)\), if there exists another graph \(H = (V', E')\) such that \(V' \subseteq V\) and \(E' \subseteq E\), then \(H\) is called a subgraph of \(G\), denoted \(H \subseteq G\).
If for \(H \subseteq G\), it satisfies that for all \(u, v \in V'\), whenever \((u, v) \in E\), we have \((u, v) \in E'\), then \(H\) is called an induced subgraph of \(G\).
It is easy to see that an induced subgraph of a graph is determined solely by the vertex subset. Thus, the induced subgraph with vertex set \(V'\) (\(V' \subseteq V\)) is called the subgraph induced by \(V'\), denoted \(G \left[ V' \right]\).
If \(H \subseteq G\) satisfies \(V' = V\), then \(H\) is called a spanning subgraph of \(G\).
Obviously, \(G\) is a subgraph, spanning subgraph, and induced subgraph of itself; the edgeless graph is a spanning subgraph of \(G\). The original graph \(G\) and the edgeless graph are trivial subgraphs of \(G\).
If a spanning subgraph \(F\) of an undirected graph \(G\) is a \(k\)-regular graph, then \(F\) is called a \(k\)-factor of \(G\).
For a directed graph \(G = (V, E)\), if its induced subgraph \(H = G \left[ V^\ast \right]\) satisfies that for all \(v \in V^\ast\), whenever \((v, u) \in E\), we have \(u \in V^\ast\), then \(H\) is called a closed subgraph of \(G\).
Connectivity
Undirected Graph
For an undirected graph \(G = (V, E)\), for \(u, v \in V\), if there exists a walk such that \(v_0 = u, v_k = v\), then \(u\) and \(v\) are said to be connected. By definition, any vertex is connected to itself, and the two endpoints of any edge are connected.
If an undirected graph \(G = (V, E)\) satisfies that any two vertices are connected, then \(G\) is called a connected graph, and this property of \(G\) is called connectivity.
If \(H\) is a connected subgraph of \(G\), and there is no \(F\) such that \(H\subsetneq F \subseteq G\) and \(F\) is connected, then \(H\) is a connected component (maximal connected subgraph) of \(G\).
Directed Graph
For a directed graph \(G = (V, E)\), for \(u, v \in V\), if there exists a walk such that \(v_0 = u, v_k = v\), then \(u\) is said to be reachable to \(v\). By definition, any vertex is reachable to itself, and the starting point of any edge is reachable to its ending point. (Connectivity in undirected graphs can be seen as mutual reachability.)
If every pair of vertices in a directed graph are mutually reachable, then the graph is strongly connected.
If replacing all directed edges of a directed graph with undirected edges yields a connected graph, then the original directed graph is weakly connected.
Similar to connected components, there are weakly connected components (maximal weakly connected subgraphs) and strongly connected components (maximal strongly connected subgraphs).
Related algorithms can be found in Strongly Connected Components.
Cut
Related algorithms can be found in Cut Vertices and Bridges and Biconnected Components.
In this section, "connected" for directed graphs generally means "strongly connected".
For a connected graph \(G = (V, E)\), if \(V'\subseteq V\) and \(G\left[V\setminus V'\right]\) (i.e., deleting vertices in \(V'\) from \(G\)) is not connected, then \(V'\) is a vertex cut (or separating set) of \(G\). A vertex cut of size one is called a cut vertex.
For a connected graph \(G = (V, E)\) and an integer \(k\), if \(|V|\ge k+1\) and \(G\) has no vertex cut of size \(k-1\), then \(G\) is \(k\)-vertex-connected. The largest \(k\) for which this holds is called the vertex connectivity of \(G\), denoted \(\kappa(G)\). (For non-complete graphs, vertex connectivity equals the size of the minimum vertex cut; for complete graphs \(K_n\), vertex connectivity is \(n-1\).)
For a graph \(G = (V, E)\) and \(u, v\in V\) with \(u\ne v\), \(u\) and \(v\) non-adjacent, and \(u\) reachable to \(v\), if \(V'\subseteq V\), \(u, v\notin V'\), and in \(G\left[V\setminus V'\right]\) \(u\) and \(v\) are not connected, then \(V'\) is called a vertex cut between \(u\) and \(v\). The size of the minimum vertex cut between \(u\) and \(v\) is called the local connectivity between \(u\) and \(v\), denoted \(\kappa(u, v)\).
Similar definitions can be made on edges:
For a connected graph \(G = (V, E)\), if \(E'\subseteq E\) and \(G' = (V, E\setminus E')\) (i.e., deleting edges in \(E'\) from \(G\)) is not connected, then \(E'\) is an edge cut of \(G\). An edge cut of size one is called a bridge.
For a connected graph \(G = (V, E)\) and an integer \(k\), if \(G\) has no edge cut of size \(k-1\), then \(G\) is \(k\)-edge-connected. The largest \(k\) for which this holds is called the edge connectivity of \(G\), denoted \(\lambda(G)\). (For any graph, edge connectivity equals the size of the minimum edge cut.)
For a graph \(G = (V, E)\) and \(u, v\in V\) with \(u\ne v\) and \(u\) reachable to \(v\), if \(E'\subseteq E\), and in \(G'=(V, E\setminus E')\) \(u\) and \(v\) are not connected, then \(E'\) is called an edge cut between \(u\) and \(v\). The size of the minimum edge cut between \(u\) and \(v\) is called the local edge-connectivity between \(u\) and \(v\), denoted \(\lambda(u, v)\).
Biconnected is almost identical to \(2\)-vertex-connected, except for a graph consisting of a single edge connecting two vertices, which is biconnected but not \(2\)-vertex-connected. In other words, a connected graph with no cut vertices is biconnected.
\(2\)-edge-connected is exactly the same as \(2\)-edge-connected. In other words, a connected graph with no bridges is \(2\)-edge-connected.
Similar to connected components, there are biconnected components (maximal biconnected subgraphs) and \(2\)-edge-connected components (maximal \(2\)-edge-connected subgraphs).
Whitney's theorem: For any graph \(G\), \(\kappa(G)\le \lambda(G)\le \delta(G)\). (The three terms in the inequality are vertex connectivity, edge connectivity, and minimum degree.)
Sparse Graph/Dense Graph
If the number of edges in a graph is much smaller than the square of its number of vertices, it is a sparse graph.
If the number of edges in a graph is close to the square of its number of vertices, it is a dense graph.
These two concepts are not strictly defined and are generally used to discuss the efficiency difference between algorithms with time complexity \(O(|V|^2)\) and \(O(|E|)\) (on dense graphs these algorithms are comparable, while on sparse graphs \(O(|E|)\) algorithms are significantly more efficient).
Complement Graph
For a simple undirected graph \(G = (V, E)\), its complement graph is a graph denoted \(\bar G\) such that \(V \left( \bar G \right) = V \left( G \right)\), and for any vertex pair \((u, v)\), \((u, v) \in E \left( \bar G \right)\) if and only if \((u, v) \notin E \left( G \right)\).
Transpose Graph
For a directed graph \(G = (V, E)\), its transpose graph is the graph obtained by keeping the vertex set unchanged and reversing the direction of every edge. That is, if the transpose of \(G\) is \(G'=(V, E')\), then \(E'=\{(v, u)|(u, v)\in E\}\).
Special Graphs
If a simple undirected graph \(G\) has an edge between every pair of distinct vertices, then \(G\) is called a complete graph. The complete graph on \(n\) vertices is denoted \(K_n\). If a directed graph \(G\) has two edges in opposite directions between every pair of distinct vertices, then \(G\) is called a complete digraph.
A graph with an empty edge set is called an edgeless graph, empty graph, or null graph. The edgeless graph on \(n\) vertices is denoted \(\overline{K}_n\) or \(N_n\). \(N_n\) and \(K_n\) are complements of each other.
Warning
Null graph may also refer to the order-zero graph \(K_0\), i.e., a graph with both vertex set and edge set empty.
If a simple directed graph \(G\) has exactly one directed edge (in one direction) between every pair of distinct vertices, then \(G\) is called a tournament graph.
If all edges of a simple undirected graph \(G = \left( V, E \right)\) form exactly one cycle, then \(G\) is called a cycle graph. The cycle graph on \(n\) (\(n \geq 3\)) vertices is denoted \(C_n\). It is easy to see that a graph is a cycle graph if and only if it is a \(2\)-regular connected graph.
If a simple undirected graph \(G = \left( V, E \right)\) has a vertex \(v\) that is adjacent to all other vertices, and there are no edges among the other vertices, then \(G\) is called a star graph. The star graph with \(n + 1\) (\(n \geq 1\)) vertices is denoted \(S_n\).
If a simple undirected graph \(G = \left( V, E \right)\) has a vertex \(v\) adjacent to all other vertices, and the other vertices form a cycle, then \(G\) is called a wheel graph. The wheel graph with \(n + 1\) (\(n \geq 3\)) vertices is denoted \(W_n\).
If all edges of a simple undirected graph \(G = \left( V, E \right)\) form a single simple path, then \(G\) is called a path graph (or chain). The path graph on \(n\) vertices is denoted \(P_n\). It is easy to see that a path graph is obtained by removing one edge from a cycle graph.
If a connected undirected graph contains no cycles, it is called a tree. Related content can be found in Tree Basics.
If a connected undirected graph contains exactly one cycle, it is called a pseudotree.
If a weakly connected directed graph has every vertex with in-degree 1, it is called a functional graph (or in-tree forest).
If a weakly connected directed graph has every vertex with out-degree 1, it is called a rooted tree forest (or out-tree forest).
Multiple trees can form a forest, multiple pseudotrees can form a pseudoforest, multiple functional graphs can form a functional graph forest, and multiple rooted tree forests can form a rooted tree forest.
If each edge of a connected undirected graph belongs to at most one cycle, it is called a cactus. Multiple cacti can form a desert.
If the vertex set of a graph can be partitioned into two parts such that there are no edges within each part, then the graph is a bipartite graph. If in a bipartite graph every vertex in one part is connected to every vertex in the other part, it is a complete bipartite graph (or biclique). A complete bipartite graph with parts of size \(n\) and \(m\) is denoted \(K_{n, m}\). Related content can be found in Bipartite Graph.
If a graph can be drawn on a plane without any two edges crossing except at their endpoints, it is a planar graph. A necessary and sufficient condition for a graph to be planar is that it contains no subgraph isomorphic to \(K_5\) or \(K_{3, 3}\). For a simple connected planar graph \(G=(V, E)\) with \(|V|\ge 3\), \(|E|\le 3|V|-6\).
Isomorphism
For two graphs \(G\) and \(H\), if there exists a bijection \(f : V(G) \to V(H)\) such that \((u,v)\in E(G)\) if and only if \((f(u),f(v))\in E(H)\), then \(f\) is called an isomorphism from \(G\) to \(H\), and graphs \(G\) and \(H\) are isomorphic, denoted \(G \cong H\).
From the definition, if \(G \cong H\), then:
- \(|V(G)|=|V(H)|,|E(G)|=|E(H)|\)
- The non-increasing degree sequences of \(G\) and \(H\) are the same.
- \(G\) and \(H\) have isomorphic induced subgraphs.
Binary Operations on Simple Undirected Graphs
For simple undirected graphs, we can define the following binary operations:
Intersection: The intersection of graphs \(G = \left( V_1, E_1 \right)\) and \(H = \left( V_2, E_2 \right)\) is defined as \(G \cap H = \left( V_1 \cap V_2, E_1 \cap E_2 \right)\).
It is easy to show that the intersection of two simple undirected graphs is also a simple undirected graph.
Union: The union of graphs \(G = \left( V_1, E_1 \right)\) and \(H = \left( V_2, E_2 \right)\) is defined as \(G \cup H = \left( V_1 \cup V_2, E_1 \cup E_2 \right)\).
Sum / Direct sum: For \(G = \left( V_1, E_1 \right)\) and \(H = \left( V_2, E_2 \right)\), arbitrarily construct \(H' \cong H\) such that \(V \left( H' \right) \cap V_1 = \varnothing\) (\(H'\) can equal \(H\)). Then any graph isomorphic to \(G \cup H'\) is called the sum/direct sum/disjoint union of \(G\) and \(H\), denoted \(G + H\) or \(G \oplus H\).
If the vertex sets of \(G\) and \(H\) are already disjoint, then \(G \cup H = G + H\).
For example, a forest can be defined as the sum of several trees.
Difference between union and sum
It can be understood that "union" merges vertices and edges that have the same "name" in the two graphs, while "sum" does not.
Special Vertex Sets/Edge Sets
Dominating Set
For an undirected graph \(G=(V, E)\), if \(V'\subseteq V\) and for every \(v\in(V\setminus V')\) there exists an edge \((u, v)\in E\) with \(u\in V'\), then \(V'\) is a dominating set of \(G\).
The size of the smallest dominating set of an undirected graph \(G\) is denoted \(\gamma(G)\). Finding the minimum dominating set of a graph is NP-hard.
For a directed graph \(G=(V, E)\), if \(V'\subseteq V\) and for every \(v\in(V\setminus V')\) there exists an edge \((u, v)\in E\) with \(u\in V'\), then \(V'\) is an out-dominating set of \(G\). Similarly, we can define an in-dominating set for directed graphs.
The size of the smallest out-dominating set of a directed graph \(G\) is denoted \(\gamma^+(G)\), and the smallest in-dominating set size is denoted \(\gamma^-(G)\).
Edge Dominating Set
For a graph \(G=(V, E)\), if \(E'\subseteq E\) and for every \(e\in(E\setminus E')\) there exists an edge in \(E'\) sharing a common endpoint with \(e\), then \(E'\) is an edge dominating set of \(G\).
Finding the minimum edge dominating set of a graph is NP-hard.
Independent Set
For a graph \(G=(V, E)\), if \(V'\subseteq V\) and no two vertices in \(V'\) are adjacent, then \(V'\) is an independent set of \(G\).
The size of the largest independent set of \(G\) is denoted \(\alpha(G)\). Finding the maximum independent set of a graph is NP-hard.
Matching
For a graph \(G=(V, E)\), if \(E'\subseteq E\) and no two distinct edges in \(E'\) share a common endpoint, and no edge in \(E'\) is a loop, then \(E'\) is a matching (or independent edge set) of \(G\). A vertex that is an endpoint of some edge in the matching is said to be matched or saturated; otherwise, it is unmatched.
The matching with the maximum number of edges is called a maximum-cardinality matching. The size of a maximum matching of \(G\) is denoted \(\nu(G)\).
If edges have weights, the matching with the maximum total weight is called a maximum-weight matching.
A matching that cannot be extended by adding any edge is called a maximal matching. A maximum matching is always a maximal matching, and any maximum matching is maximal. A maximal matching is always an edge dominating set, but an edge dominating set is not necessarily a matching. The minimum maximal matching has the same size as the minimum edge dominating set, but a minimum edge dominating set is not necessarily a matching. Finding a minimum maximal matching is NP-hard.
If all vertices are matched in a matching, it is a perfect matching. If exactly one vertex is unmatched, it is a near-perfect matching.
Counting the number of matchings or perfect matchings in a general graph or bipartite graph is #P-complete.
For a matching \(M\), a path that starts at an unmatched vertex and alternates between edges in \(M\) and edges not in \(M\) is called an alternating path. An alternating path that ends at an unmatched vertex is called an augmenting path.
Tutte's theorem: An \(n\)-vertex undirected graph \(G\) has a perfect matching if and only if for every \(V' \subset V(G)\), \(p_{\text{odd}}(G-V')\leq |V'|\), where \(p_{\text{odd}}\) denotes the number of odd-sized connected components.
Tutte's theorem (corollary): Every bridgeless \(3\)-regular graph has a perfect matching.
Vertex Cover
For a graph \(G=(V, E)\), if \(V'\subseteq V\) and every edge \(e\in E\) has at least one endpoint in \(V'\), then \(V'\) is a vertex cover of \(G\).
A vertex cover is always a dominating set, but a minimal vertex cover is not necessarily a minimal dominating set.
A vertex set is a vertex cover if and only if its complement is an independent set. Therefore, the complement of a minimum vertex cover is a maximum independent set. Finding a minimum vertex cover is NP-hard.
The size of any matching in a graph does not exceed the size of any vertex cover. For the complete bipartite graph \(K_{n, m}\), both the maximum matching size and minimum vertex cover size are \(\min(n, m)\).
Edge Cover
For a graph \(G=(V, E)\), if \(E'\subseteq E\) and every vertex \(v\in V\) is incident to at least one edge in \(E'\), then \(E'\) is an edge cover of \(G\).
The size of a minimum edge cover is denoted \(\rho(G)\). It can be obtained by greedily extending a maximum matching: for each unmatched vertex, add one incident edge to the maximum matching, yielding a minimum edge cover.
A maximum matching can also be obtained from a minimum edge cover: from each pair of edges sharing a common vertex in the minimum edge cover, delete one edge.
The size of a minimum edge cover plus the size of a maximum matching equals the number of vertices: \(\rho(G)+\nu(G)=|V(G)|\).
The size of a maximum matching does not exceed the size of a minimum edge cover: \(\nu(G)\le\rho(G)\). In particular, a perfect matching is always a minimum edge cover, which is the only case where equality holds.
The size of any independent set in a graph does not exceed the size of any edge cover. For the complete bipartite graph \(K_{n, m}\), both the maximum independent set size and minimum edge cover size are \(\max(n, m)\).
Clique
For a graph \(G=(V, E)\), if \(V'\subseteq V\) and every pair of distinct vertices in \(V'\) are adjacent, then \(V'\) is a clique of \(G\). The induced subgraph of a clique is a complete graph.
A clique that cannot be extended by adding any vertex is a maximal clique.
The size of the largest clique in \(G\) is denoted \(\omega(G)\). The size of the largest clique equals the size of the largest independent set in the complement graph: \(\omega(G)=\alpha(\bar{G})\). Finding the maximum clique of a graph is NP-hard.
References
OI Transit - Graph Theory Concepts Overview
Wikipedia (and corresponding entries for related concepts)
Discrete Mathematics (Revised Edition), Tian Wencheng & Zhou Luxin, Tianjin Literature Publishing House, P184-187
Dai Yiqi, Hu Guanzhang, Chen Wei. Graph Theory and Algebraic Structures [M]. Beijing: Tsinghua University Press, 1995.
本页面最近更新:,更新历史
发现错误?想一起完善? 在 GitHub 上编辑此页!
本页面贡献者:OI-wiki
本页面的全部内容在 CC BY-SA 4.0 和 SATA 协议之条款下提供,附加条款亦可能应用