with(plottools): with(plots): longText := "tree node edge path cycle adjacency matrix adjacency list spanning tree subgraph star graph complete graph bipartite graph matching maximum flow minimum cut eulerian path eulerian circuit hamiltonian path hamiltonian cycle articulation point cut vertex cut edge BFS DFS topological sort partial order chordal graph chordality planarity planar graph crossing number Kuratowski theorem isomorphic graph graph isomorphism spectral radius adjacency spectrum eigenvalues Laplacian matrix spectral clustering girth chromatic number chromatic polynomial four color theorem graph coloring clique number clique cover independent set dominating set domatic number flow network capacity function Menger theorem Hall marriage theorem Konig theorem bipartite matching covering number Dirac theorem Ore theorem Tutte theorem ear decomposition geometric graph random graph Erdos Renyi model configuration model pseudo forest hypergraph bipartite subdivision line graph dual graph intersection graph triangle free graph strongly connected components weakly connected components feedback arc set feedback vertex set Burnsides lemma automorphism group Cayley graph center of a tree diameter of a tree radius of a graph clique cover number independence polynomial Turan theorem Ramsey theory induced subgraph walk closed walk adjacency eigenvalues adjacency eigenvectors Cayley Hamilton theorem spectral bisection signed graph multi graph multiedge girth bound Kirchhoff matrix weighted adjacency matrix diameter bound Moore bound planar dual outerplanar graph chord diagram cactus graph cactus edge cut cactus node cut vertex cover edge cover graph homomorphism bipartite subgraph tournament transitive tournament feedback arc number algebraic connectivity clique transversal fractional coloring fractional matching Havel Hakimi Theil sen subgraph thick graph chord transversal cut ranking Dirichlet eigenvalues Cheeger inequality expander graph Chebyshev inequality matching polytope Lovasz theta function Grotschel Lovasz Schrijver perfect graph claw free graph Pancyclic graph hamiltonian connectedness star cutset nose graph laplacian eigenvalue gap diameter reduction layered network reachability DAG topological number Jordan center Caterpillar tree friendship graph wheel graph blossom algorithm Gallai decomposition graph center integral graph bridge density diameter path cut equivalence weighted matching disjoint path problem Steiner tree problem ofSteiner minimal spanning tree Prufer code Prufer sequence De Bruijn graph word graph short paths girth constraints kelmans transformation Zykov sum Graphon Density regular Mader theorem girth regular cactus expansion thin graph butterfly graph Schurian association set Kneser graph Johnson graph generalized polygon nine point graph graph manifold scion tree half transitive bipancyclic subcubic integral laplacian eigenvalue placement Teichmuller graph homotopy contraction Laplacian spectrum Cheeger constant spectral gap Rayleigh quotient Quinn flow Grundy number bipartite tournament transitive subtournament minimal separator chordal completion graph of groups lamination minors edge density Tutte matrix Halin graph cluster graph clustering coefficient k core decomposition Ulmer complex directed spanning tree Gomory Hu tree minimum spanning arborescence feedback edge set feedback vertex number Scarf complex Tutte polymer bipartite embed vertex multiplicity edge multiplicity cactus decomposition Kirkman schoolgirl Steiner system treewidth pathwidth brambles block cut tree centroid of tree superconcentrator expansion constant transshipment plan Hopcroft Karp algorithm blossom shrinking Gomory cut Stoer Wagner min cut Gomory Hu cut tree": chunkString := proc(s, width :: posint) local L, i, n; L := []; n := length(s); i := 1; while i <= n do L := [op(L), substring(s, i .. min(i+width-1, n))]; i := i + width; end do; return L; end proc: MAX_LINE_WIDTH := 10000: lineSpacing := 1: fontSize := 10: outlineColor := "DarkMagenta": mainColor := "Magenta": lines := chunkString(longText, MAX_LINE_WIDTH): local i: BG := []: for i to nops(lines) do BG := [ op(BG), textplot( [0, - (i-1)*lineSpacing, lines[i]], font = ["HELVETICA","BOLD", fontSize], color = "E000E0" ) ]; od: valHearts := []: for i from 0 to 4 do Y := 2 - 3*i: X := 0 + 0.5*i: delta:=0.1: valOutlineUp := textplot([ X, Y+delta, "I LOVE ALGORITHMIC GRAPH THEORY"], font=["HELVETICA","BOLD",28], color=outlineColor): valOutlineUp2 := textplot([ X, Y+(delta/2), "I LOVE ALGORITHMIC GRAPH THEORY"], font=["HELVETICA","BOLD",28], color=outlineColor): valText := textplot([X, Y, "I LOVE ALGORITHMIC GRAPH THEORY"], font=["HELVETICA","BOLD",28], color=mainColor): valHearts := [ op(valHearts), valOutlineUp,valOutlineUp2,valText]: end do: ValentinePlot := display( [op(BG),op(valHearts)], background="White", axes = none, size = [600, 450], scaling = constrained );