mirror of
https://github.com/TheAlgorithms/C-Plus-Plus.git
synced 2026-05-16 14:14:27 +08:00
Documentation for b12dad038c
This commit is contained in:
271
d5/d58/persistent__seg__tree__lazy__prop_8cpp.html
Normal file
271
d5/d58/persistent__seg__tree__lazy__prop_8cpp.html
Normal file
@@ -0,0 +1,271 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.9.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>Algorithms_in_C++: range_queries/persistent_seg_tree_lazy_prop.cpp File Reference</title>
|
||||
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="../../jquery.js"></script>
|
||||
<script type="text/javascript" src="../../dynsections.js"></script>
|
||||
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="../../resize.js"></script>
|
||||
<script type="text/javascript" src="../../navtreedata.js"></script>
|
||||
<script type="text/javascript" src="../../navtree.js"></script>
|
||||
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="../../search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="../../search/search.js"></script>
|
||||
<script type="text/x-mathjax-config">
|
||||
MathJax.Hub.Config({
|
||||
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
|
||||
jax: ["input/TeX","output/HTML-CSS"],
|
||||
});
|
||||
</script>
|
||||
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
|
||||
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">Algorithms_in_C++
|
||||
 <span id="projectnumber">1.0.0</span>
|
||||
</div>
|
||||
<div id="projectbrief">Set of algorithms implemented in C++.</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="../../menudata.js"></script>
|
||||
<script type="text/javascript" src="../../menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('../../',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(document).ready(function(){initNavTree('d5/d58/persistent__seg__tree__lazy__prop_8cpp.html','../../'); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="javascript:void(0)" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#nested-classes">Classes</a> |
|
||||
<a href="#namespaces">Namespaces</a> |
|
||||
<a href="#func-members">Functions</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">persistent_seg_tree_lazy_prop.cpp File Reference</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p><a href="https://en.wikipedia.org/wiki/Persistent_data_structure">Persistent segment tree with range updates (lazy propagation)</a>
|
||||
<a href="#details">More...</a></p>
|
||||
<div class="textblock"><code>#include <iostream></code><br />
|
||||
<code>#include <memory></code><br />
|
||||
<code>#include <vector></code><br />
|
||||
</div><div class="textblock"><div class="dynheader">
|
||||
Include dependency graph for persistent_seg_tree_lazy_prop.cpp:</div>
|
||||
<div class="dyncontent">
|
||||
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d2/d86/persistent__seg__tree__lazy__prop_8cpp__incl.svg" width="259" height="127"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</div><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
|
||||
Classes</h2></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d28/classrange__queries_1_1per_seg_tree.html">range_queries::perSegTree</a></td></tr>
|
||||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Range query here is range sum, but the code can be modified to make different queries like range max or min. <a href="../../d8/d28/classrange__queries_1_1per_seg_tree.html#details">More...</a><br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d66/classrange__queries_1_1per_seg_tree_1_1_node.html">range_queries::perSegTree::Node</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
|
||||
Namespaces</h2></td></tr>
|
||||
<tr class="memitem:dd/d69/namespacerange__queries"><td class="memItemLeft" align="right" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d69/namespacerange__queries.html">range_queries</a></td></tr>
|
||||
<tr class="memdesc:dd/d69/namespacerange__queries"><td class="mdescLeft"> </td><td class="mdescRight">Algorithms and Data Structures that support range queries and updates. <br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
||||
Functions</h2></td></tr>
|
||||
<tr class="memitem:aa8dca7b867074164d5f45b0f3851269d"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d58/persistent__seg__tree__lazy__prop_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a> ()</td></tr>
|
||||
<tr class="memdesc:aa8dca7b867074164d5f45b0f3851269d"><td class="mdescLeft"> </td><td class="mdescRight">Test implementations. <a href="../../d5/d58/persistent__seg__tree__lazy__prop_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">More...</a><br /></td></tr>
|
||||
<tr class="separator:aa8dca7b867074164d5f45b0f3851269d"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d58/persistent__seg__tree__lazy__prop_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
|
||||
<tr class="memdesc:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="mdescLeft"> </td><td class="mdescRight">Main function. <a href="../../d5/d58/persistent__seg__tree__lazy__prop_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">More...</a><br /></td></tr>
|
||||
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<div class="textblock"><p><a href="https://en.wikipedia.org/wiki/Persistent_data_structure">Persistent segment tree with range updates (lazy propagation)</a> </p>
|
||||
<p>A normal segment tree facilitates making point updates and range queries in logarithmic time. Lazy propagation preserves the logarithmic time with range updates. So, a segment tree with lazy propagation enables doing range updates and range queries in logarithmic time, but it doesn't save any information about itself before the last update. A persistent data structure always preserves the previous version of itself when it is modified. That is, a new version of the segment tree is generated after every update. It saves all previous versions of itself (before every update) to facilitate doing range queries in any version. More memory is used ,but the logarithmic time is preserved because the new version points to the same nodes, that the previous version points to, that are not affected by the update. That is, only the nodes that are affected by the update and their ancestors are copied. The rest is copied using lazy propagation in the next queries. Thus preserving the logarithmic time because the number of nodes copied after any update is logarithmic.</p>
|
||||
<dl class="section author"><dt>Author</dt><dd><a href="https://github.com/MSedra">Magdy Sedra</a> </dd></dl>
|
||||
</div><h2 class="groupheader">Function Documentation</h2>
|
||||
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">◆ </a></span>main()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">int main </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">void </td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Main function. </p>
|
||||
<dl class="section return"><dt>Returns</dt><dd>0 on exit </dd></dl>
|
||||
<div class="fragment"><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  {</div>
|
||||
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <a class="code" href="../../d5/d58/persistent__seg__tree__lazy__prop_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// run self-test implementations</span></div>
|
||||
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="keywordflow">return</span> 0;</div>
|
||||
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> }</div>
|
||||
<div class="ttc" id="apersistent__seg__tree__lazy__prop_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="../../d5/d58/persistent__seg__tree__lazy__prop_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">Test implementations.</div><div class="ttdef"><b>Definition:</b> persistent_seg_tree_lazy_prop.cpp:268</div></div>
|
||||
</div><!-- fragment --><div class="dynheader">
|
||||
Here is the call graph for this function:</div>
|
||||
<div class="dyncontent">
|
||||
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="../../d5/d58/persistent__seg__tree__lazy__prop_8cpp_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph.svg" width="100%" height="525"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="aa8dca7b867074164d5f45b0f3851269d"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#aa8dca7b867074164d5f45b0f3851269d">◆ </a></span>test()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="mlabels">
|
||||
<tr>
|
||||
<td class="mlabels-left">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static void test </td>
|
||||
<td>(</td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Test implementations. </p>
|
||||
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
|
||||
<div class="fragment"><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  {</div>
|
||||
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<int64_t></a> arr = {-5, 2, 3, 11, -2, 7, 0, 1};</div>
|
||||
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <a class="code" href="../../d8/d28/classrange__queries_1_1per_seg_tree.html">range_queries::perSegTree</a> tree;</div>
|
||||
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Elements before any updates are {"</span>;</div>
|
||||
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <span class="keywordflow">for</span> (uint32_t i = 0; i < arr.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>(); ++i) {</div>
|
||||
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << arr[i];</div>
|
||||
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <span class="keywordflow">if</span> (i != arr.size() - 1) {</div>
|
||||
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">","</span>;</div>
|
||||
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  }</div>
|
||||
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  }</div>
|
||||
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"}\n"</span>;</div>
|
||||
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  tree.<a class="code" href="../../d8/d28/classrange__queries_1_1per_seg_tree.html#a67d8371bc998c67d53e8f64db4f52767">construct</a>(</div>
|
||||
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  arr); <span class="comment">// constructing the original segment tree (version = 0)</span></div>
|
||||
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Querying range sum on version 0 from index 2 to 4 = 3+11-2 = "</span></div>
|
||||
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  << tree.<a class="code" href="../../d8/d28/classrange__queries_1_1per_seg_tree.html#ae8ae4b1835e5e8aec32f68c5059ed4d4">query</a>(2, 4, 0) << <span class="charliteral">'\n'</span>;</div>
|
||||
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a></div>
|
||||
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  << <span class="stringliteral">"Subtract 7 from all elements from index 1 to index 5 inclusive\n"</span>;</div>
|
||||
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  tree.<a class="code" href="../../d8/d28/classrange__queries_1_1per_seg_tree.html#af16c0c87b29119f066041d6e71ab50e0">update</a>(1, 5, -7); <span class="comment">// subtracting 7 from index 1 to index 5</span></div>
|
||||
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Elements of the segment tree whose version = 1 (after 1 "</span></div>
|
||||
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <span class="stringliteral">"update) are {"</span>;</div>
|
||||
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keywordflow">for</span> (uint32_t i = 0; i < arr.size(); ++i) {</div>
|
||||
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << tree.<a class="code" href="../../d8/d28/classrange__queries_1_1per_seg_tree.html#ae8ae4b1835e5e8aec32f68c5059ed4d4">query</a>(i, i, 1);</div>
|
||||
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <span class="keywordflow">if</span> (i != arr.size() - 1) {</div>
|
||||
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">","</span>;</div>
|
||||
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  }</div>
|
||||
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  }</div>
|
||||
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"}\n"</span>;</div>
|
||||
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Add 10 to all elements from index 0 to index 7 inclusive\n"</span>;</div>
|
||||
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  tree.<a class="code" href="../../d8/d28/classrange__queries_1_1per_seg_tree.html#af16c0c87b29119f066041d6e71ab50e0">update</a>(0, 7, 10); <span class="comment">// adding 10 to all elements</span></div>
|
||||
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Elements of the segment tree whose version = 2 (after 2 "</span></div>
|
||||
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="stringliteral">"updates) are {"</span>;</div>
|
||||
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="keywordflow">for</span> (uint32_t i = 0; i < arr.size(); ++i) {</div>
|
||||
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << tree.<a class="code" href="../../d8/d28/classrange__queries_1_1per_seg_tree.html#ae8ae4b1835e5e8aec32f68c5059ed4d4">query</a>(i, i, 2);</div>
|
||||
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keywordflow">if</span> (i != arr.size() - 1) {</div>
|
||||
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">","</span>;</div>
|
||||
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  }</div>
|
||||
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  }</div>
|
||||
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"}\n"</span>;</div>
|
||||
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Number of segment trees (versions) now = "</span> << tree.<a class="code" href="../../d8/d28/classrange__queries_1_1per_seg_tree.html#a0fe4e431f3e09c274ecd7d2d58dcb865">size</a>()</div>
|
||||
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  << <span class="charliteral">'\n'</span>;</div>
|
||||
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Querying range sum on version 0 from index 3 to 5 = 11-2+7 = "</span></div>
|
||||
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  << tree.<a class="code" href="../../d8/d28/classrange__queries_1_1per_seg_tree.html#ae8ae4b1835e5e8aec32f68c5059ed4d4">query</a>(3, 5, 0) << <span class="charliteral">'\n'</span>;</div>
|
||||
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Querying range sum on version 1 from index 3 to 5 = 4-9+0 = "</span></div>
|
||||
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  << tree.<a class="code" href="../../d8/d28/classrange__queries_1_1per_seg_tree.html#ae8ae4b1835e5e8aec32f68c5059ed4d4">query</a>(3, 5, 1) << <span class="charliteral">'\n'</span>;</div>
|
||||
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> }</div>
|
||||
<div class="ttc" id="abasic_ostream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a></div></div>
|
||||
<div class="ttc" id="aclassrange__queries_1_1per_seg_tree_html"><div class="ttname"><a href="../../d8/d28/classrange__queries_1_1per_seg_tree.html">range_queries::perSegTree</a></div><div class="ttdoc">Range query here is range sum, but the code can be modified to make different queries like range max ...</div><div class="ttdef"><b>Definition:</b> persistent_seg_tree_lazy_prop.cpp:39</div></div>
|
||||
<div class="ttc" id="aclassrange__queries_1_1per_seg_tree_html_a0fe4e431f3e09c274ecd7d2d58dcb865"><div class="ttname"><a href="../../d8/d28/classrange__queries_1_1per_seg_tree.html#a0fe4e431f3e09c274ecd7d2d58dcb865">range_queries::perSegTree::size</a></div><div class="ttdeci">uint32_t size()</div><div class="ttdoc">Getting the number of versions after updates so far which is equal to the size of the pointers vector...</div><div class="ttdef"><b>Definition:</b> persistent_seg_tree_lazy_prop.cpp:255</div></div>
|
||||
<div class="ttc" id="aclassrange__queries_1_1per_seg_tree_html_a67d8371bc998c67d53e8f64db4f52767"><div class="ttname"><a href="../../d8/d28/classrange__queries_1_1per_seg_tree.html#a67d8371bc998c67d53e8f64db4f52767">range_queries::perSegTree::construct</a></div><div class="ttdeci">std::shared_ptr< Node > construct(const uint32_t &i, const uint32_t &j)</div><div class="ttdoc">Constructing the segment tree with the early passed vector. Every call creates a node to hold the sum...</div><div class="ttdef"><b>Definition:</b> persistent_seg_tree_lazy_prop.cpp:106</div></div>
|
||||
<div class="ttc" id="aclassrange__queries_1_1per_seg_tree_html_ae8ae4b1835e5e8aec32f68c5059ed4d4"><div class="ttname"><a href="../../d8/d28/classrange__queries_1_1per_seg_tree.html#ae8ae4b1835e5e8aec32f68c5059ed4d4">range_queries::perSegTree::query</a></div><div class="ttdeci">int64_t query(const uint32_t &i, const uint32_t &j, const uint32_t &l, const uint32_t &r, std::shared_ptr< Node > const &curr)</div><div class="ttdoc">Querying the range from index l to index r, checking at every node if it has some value to be propaga...</div><div class="ttdef"><b>Definition:</b> persistent_seg_tree_lazy_prop.cpp:171</div></div>
|
||||
<div class="ttc" id="aclassrange__queries_1_1per_seg_tree_html_af16c0c87b29119f066041d6e71ab50e0"><div class="ttname"><a href="../../d8/d28/classrange__queries_1_1per_seg_tree.html#af16c0c87b29119f066041d6e71ab50e0">range_queries::perSegTree::update</a></div><div class="ttdeci">std::shared_ptr< Node > update(const uint32_t &i, const uint32_t &j, const uint32_t &l, const uint32_t &r, const int64_t &value, std::shared_ptr< Node > const &curr)</div><div class="ttdoc">Doing range update, checking at every node if it has some value to be propagated. All nodes affected ...</div><div class="ttdef"><b>Definition:</b> persistent_seg_tree_lazy_prop.cpp:135</div></div>
|
||||
<div class="ttc" id="asize_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/size.html">std::vector::size</a></div><div class="ttdeci">T size(T... args)</div></div>
|
||||
<div class="ttc" id="avector_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector< int64_t ></a></div></div>
|
||||
</div><!-- fragment --><div class="dynheader">
|
||||
Here is the call graph for this function:</div>
|
||||
<div class="dyncontent">
|
||||
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="../../d5/d58/persistent__seg__tree__lazy__prop_8cpp_aa8dca7b867074164d5f45b0f3851269d_cgraph.svg" width="100%" height="525"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="../../dir_074119ce3a874b57120c49a0cc4bb5ad.html">range_queries</a></li><li class="navelem"><a class="el" href="../../d5/d58/persistent__seg__tree__lazy__prop_8cpp.html">persistent_seg_tree_lazy_prop.cpp</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
7
d5/d58/persistent__seg__tree__lazy__prop_8cpp.js
Normal file
7
d5/d58/persistent__seg__tree__lazy__prop_8cpp.js
Normal file
@@ -0,0 +1,7 @@
|
||||
var persistent__seg__tree__lazy__prop_8cpp =
|
||||
[
|
||||
[ "perSegTree", "d8/d28/classrange__queries_1_1per_seg_tree.html", "d8/d28/classrange__queries_1_1per_seg_tree" ],
|
||||
[ "Node", "d5/d66/classrange__queries_1_1per_seg_tree_1_1_node.html", "d5/d66/classrange__queries_1_1per_seg_tree_1_1_node" ],
|
||||
[ "main", "d5/d58/persistent__seg__tree__lazy__prop_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ],
|
||||
[ "test", "d5/d58/persistent__seg__tree__lazy__prop_8cpp.html#aa8dca7b867074164d5f45b0f3851269d", null ]
|
||||
];
|
||||
@@ -0,0 +1,10 @@
|
||||
<map id="test" name="test">
|
||||
<area shape="rect" id="node1" title="Test implementations." alt="" coords="5,137,49,163"/>
|
||||
<area shape="rect" id="node2" href="$d8/d28/classrange__queries_1_1per_seg_tree.html#a67d8371bc998c67d53e8f64db4f52767" title="Constructing the segment tree with the early passed vector. Every call creates a node to hold the sum..." alt="" coords="97,5,276,47"/>
|
||||
<area shape="rect" id="node3" href="$d8/d28/classrange__queries_1_1per_seg_tree.html#ae8ae4b1835e5e8aec32f68c5059ed4d4" title="Querying the range from index l to index r, checking at every node if it has some value to be propaga..." alt="" coords="97,188,276,229"/>
|
||||
<area shape="rect" id="node6" href="$d8/d28/classrange__queries_1_1per_seg_tree.html#a0fe4e431f3e09c274ecd7d2d58dcb865" title="Getting the number of versions after updates so far which is equal to the size of the pointers vector..." alt="" coords="97,71,276,112"/>
|
||||
<area shape="rect" id="node7" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector/size.html#" title=" " alt="" coords="355,107,471,134"/>
|
||||
<area shape="rect" id="node8" href="$d8/d28/classrange__queries_1_1per_seg_tree.html#af16c0c87b29119f066041d6e71ab50e0" title="Doing range update, checking at every node if it has some value to be propagated. All nodes affected ..." alt="" coords="97,253,276,295"/>
|
||||
<area shape="rect" id="node4" href="$d8/d28/classrange__queries_1_1per_seg_tree.html#ace7f57935b3bb9446f11c239fd89ae79" title="If there is some value to be propagated to the passed node, value is added to the node and the childr..." alt="" coords="324,195,503,236"/>
|
||||
<area shape="rect" id="node5" href="$d8/d28/classrange__queries_1_1per_seg_tree.html#acacb937f95a078a236a4a58f9630a045" title="Creating a new node with the same values of curr node." alt="" coords="551,224,729,265"/>
|
||||
</map>
|
||||
@@ -0,0 +1 @@
|
||||
ec856ef8be7199a44c3ec6193965f4dc
|
||||
@@ -0,0 +1,239 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.0 (20210118.1747)
|
||||
-->
|
||||
<!-- Title: test Pages: 1 -->
|
||||
<!--zoomable 225 -->
|
||||
<svg id="main" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" onload="init(evt)">
|
||||
<style type="text/css"><![CDATA[
|
||||
.edge:hover path { stroke: red; }
|
||||
.edge:hover polygon { stroke: red; fill: red; }
|
||||
]]></style>
|
||||
<script type="text/javascript"><![CDATA[
|
||||
var edges = document.getElementsByTagName('g');
|
||||
if (edges && edges.length) {
|
||||
for (var i=0;i<edges.length;i++) {
|
||||
if (edges[i].id.substr(0,4)=='edge') {
|
||||
edges[i].setAttribute('class','edge');
|
||||
}
|
||||
}
|
||||
}
|
||||
]]></script>
|
||||
<defs>
|
||||
<circle id="rim" cx="0" cy="0" r="7"/>
|
||||
<circle id="rim2" cx="0" cy="0" r="3.5"/>
|
||||
<g id="zoomPlus">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="zoomplus.mouseover" end="zoomplus.mouseout"/>
|
||||
</use>
|
||||
<path d="M-4,0h8M0,-4v8" fill="none" stroke="white" stroke-width="1.5" pointer-events="none"/>
|
||||
</g>
|
||||
<g id="zoomMin">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="zoomminus.mouseover" end="zoomminus.mouseout"/>
|
||||
</use>
|
||||
<path d="M-4,0h8" fill="none" stroke="white" stroke-width="1.5" pointer-events="none"/>
|
||||
</g>
|
||||
<g id="dirArrow">
|
||||
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
|
||||
</g>
|
||||
<g id="resetDef">
|
||||
<use xlink:href="#rim2" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="reset.mouseover" end="reset.mouseout"/>
|
||||
</use>
|
||||
</g>
|
||||
</defs>
|
||||
|
||||
<script type="text/javascript">
|
||||
var viewWidth = 551;
|
||||
var viewHeight = 225;
|
||||
var sectionId = 'dynsection-2';
|
||||
</script>
|
||||
<script xlink:href="../../svgpan.js"/>
|
||||
<svg id="graph" class="graph">
|
||||
<g id="viewport">
|
||||
<title>test</title>
|
||||
<polygon fill="white" stroke="transparent" points="-4,4 -4,-221 547,-221 547,4 -4,4"/>
|
||||
<!-- Node1 -->
|
||||
<g id="node1" class="node">
|
||||
<title>Node1</title>
|
||||
<g id="a_node1"><a xlink:title="Test implementations.">
|
||||
<polygon fill="#bfbfbf" stroke="black" points="0,-99 0,-118 33,-118 33,-99 0,-99"/>
|
||||
<text text-anchor="middle" x="16.5" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00">test</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node2 -->
|
||||
<g id="node2" class="node">
|
||||
<title>Node2</title>
|
||||
<g id="a_node2"><a xlink:href="../../d8/d28/classrange__queries_1_1per_seg_tree.html#a67d8371bc998c67d53e8f64db4f52767" target="_top" xlink:title="Constructing the segment tree with the early passed vector. Every call creates a node to hold the sum...">
|
||||
<polygon fill="white" stroke="black" points="69,-186.5 69,-216.5 203,-216.5 203,-186.5 69,-186.5"/>
|
||||
<text text-anchor="start" x="77" y="-204.5" font-family="Helvetica,sans-Serif" font-size="10.00">range_queries::perSegTree</text>
|
||||
<text text-anchor="middle" x="136" y="-193.5" font-family="Helvetica,sans-Serif" font-size="10.00">::construct</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node2 -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>Node1->Node2</title>
|
||||
<path fill="none" stroke="midnightblue" d="M22.45,-118.39C30.35,-133.24 47.17,-161.27 69,-177.5 70.87,-178.89 72.83,-180.2 74.85,-181.45"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="73.6,-184.75 84.05,-186.47 76.95,-178.61 73.6,-184.75"/>
|
||||
</g>
|
||||
<!-- Node3 -->
|
||||
<g id="node3" class="node">
|
||||
<title>Node3</title>
|
||||
<g id="a_node3"><a xlink:href="../../d8/d28/classrange__queries_1_1per_seg_tree.html#ae8ae4b1835e5e8aec32f68c5059ed4d4" target="_top" xlink:title="Querying the range from index l to index r, checking at every node if it has some value to be propaga...">
|
||||
<polygon fill="white" stroke="black" points="69,-49.5 69,-79.5 203,-79.5 203,-49.5 69,-49.5"/>
|
||||
<text text-anchor="start" x="77" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00">range_queries::perSegTree</text>
|
||||
<text text-anchor="middle" x="136" y="-56.5" font-family="Helvetica,sans-Serif" font-size="10.00">::query</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node3 -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>Node1->Node3</title>
|
||||
<path fill="none" stroke="midnightblue" d="M33.35,-102.57C46.74,-97.55 66.66,-90.09 85.33,-83.1"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="86.8,-86.29 94.94,-79.5 84.35,-79.73 86.8,-86.29"/>
|
||||
</g>
|
||||
<!-- Node6 -->
|
||||
<g id="node6" class="node">
|
||||
<title>Node6</title>
|
||||
<g id="a_node6"><a xlink:href="../../d8/d28/classrange__queries_1_1per_seg_tree.html#a0fe4e431f3e09c274ecd7d2d58dcb865" target="_top" xlink:title="Getting the number of versions after updates so far which is equal to the size of the pointers vector...">
|
||||
<polygon fill="white" stroke="black" points="69,-137.5 69,-167.5 203,-167.5 203,-137.5 69,-137.5"/>
|
||||
<text text-anchor="start" x="77" y="-155.5" font-family="Helvetica,sans-Serif" font-size="10.00">range_queries::perSegTree</text>
|
||||
<text text-anchor="middle" x="136" y="-144.5" font-family="Helvetica,sans-Serif" font-size="10.00">::size</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node6 -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>Node1->Node6</title>
|
||||
<path fill="none" stroke="midnightblue" d="M33.35,-114.43C46.74,-119.45 66.66,-126.91 85.33,-133.9"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="84.35,-137.27 94.94,-137.5 86.8,-130.71 84.35,-137.27"/>
|
||||
</g>
|
||||
<!-- Node7 -->
|
||||
<g id="node7" class="node">
|
||||
<title>Node7</title>
|
||||
<g id="a_node7"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/size.html#" xlink:title=" ">
|
||||
<polygon fill="white" stroke="black" points="262.5,-121 262.5,-140 349.5,-140 349.5,-121 262.5,-121"/>
|
||||
<text text-anchor="middle" x="306" y="-128" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector::size</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node7 -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>Node1->Node7</title>
|
||||
<path fill="none" stroke="midnightblue" d="M33.37,-109.71C74.38,-112.85 185.33,-121.34 252.06,-126.45"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="252.14,-129.97 262.38,-127.24 252.67,-122.99 252.14,-129.97"/>
|
||||
</g>
|
||||
<!-- Node8 -->
|
||||
<g id="node8" class="node">
|
||||
<title>Node8</title>
|
||||
<g id="a_node8"><a xlink:href="../../d8/d28/classrange__queries_1_1per_seg_tree.html#af16c0c87b29119f066041d6e71ab50e0" target="_top" xlink:title="Doing range update, checking at every node if it has some value to be propagated. All nodes affected ...">
|
||||
<polygon fill="white" stroke="black" points="69,-0.5 69,-30.5 203,-30.5 203,-0.5 69,-0.5"/>
|
||||
<text text-anchor="start" x="77" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">range_queries::perSegTree</text>
|
||||
<text text-anchor="middle" x="136" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">::update</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node8 -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>Node1->Node8</title>
|
||||
<path fill="none" stroke="midnightblue" d="M22.45,-98.61C30.35,-83.76 47.17,-55.73 69,-39.5 70.87,-38.11 72.83,-36.8 74.85,-35.55"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="76.95,-38.39 84.05,-30.53 73.6,-32.25 76.95,-38.39"/>
|
||||
</g>
|
||||
<!-- Node4 -->
|
||||
<g id="node4" class="node">
|
||||
<title>Node4</title>
|
||||
<g id="a_node4"><a xlink:href="../../d8/d28/classrange__queries_1_1per_seg_tree.html#ace7f57935b3bb9446f11c239fd89ae79" target="_top" xlink:title="If there is some value to be propagated to the passed node, value is added to the node and the childr...">
|
||||
<polygon fill="white" stroke="black" points="239,-44.5 239,-74.5 373,-74.5 373,-44.5 239,-44.5"/>
|
||||
<text text-anchor="start" x="247" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">range_queries::perSegTree</text>
|
||||
<text text-anchor="middle" x="306" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">::lazy</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node3->Node4 -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>Node3->Node4</title>
|
||||
<path fill="none" stroke="midnightblue" d="M203.4,-62.52C211.68,-62.28 220.2,-62.02 228.62,-61.77"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="228.92,-65.27 238.81,-61.47 228.71,-58.27 228.92,-65.27"/>
|
||||
</g>
|
||||
<!-- Node5 -->
|
||||
<g id="node5" class="node">
|
||||
<title>Node5</title>
|
||||
<g id="a_node5"><a xlink:href="../../d8/d28/classrange__queries_1_1per_seg_tree.html#acacb937f95a078a236a4a58f9630a045" target="_top" xlink:title="Creating a new node with the same values of curr node.">
|
||||
<polygon fill="white" stroke="black" points="409,-22.5 409,-52.5 543,-52.5 543,-22.5 409,-22.5"/>
|
||||
<text text-anchor="start" x="417" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00">range_queries::perSegTree</text>
|
||||
<text text-anchor="middle" x="476" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">::newKid</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node4->Node5 -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>Node4->Node5</title>
|
||||
<path fill="none" stroke="midnightblue" d="M373.4,-50.81C381.77,-49.71 390.39,-48.58 398.89,-47.47"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="399.35,-50.94 408.81,-46.17 398.44,-44 399.35,-50.94"/>
|
||||
</g>
|
||||
<!-- Node6->Node7 -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>Node6->Node7</title>
|
||||
<path fill="none" stroke="midnightblue" d="M203.4,-143.81C219.65,-141.68 236.82,-139.43 252.33,-137.4"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="252.79,-140.87 262.25,-136.1 251.88,-133.93 252.79,-140.87"/>
|
||||
</g>
|
||||
<!-- Node8->Node4 -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>Node8->Node4</title>
|
||||
<path fill="none" stroke="midnightblue" d="M194.35,-30.52C208.33,-34.18 223.4,-38.13 237.8,-41.9"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="237.07,-45.33 247.63,-44.47 238.84,-38.55 237.07,-45.33"/>
|
||||
</g>
|
||||
<!-- Node8->Node5 -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>Node8->Node5</title>
|
||||
<path fill="none" stroke="midnightblue" d="M203.37,-19.82C259.42,-23.47 339.69,-28.69 398.44,-32.52"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="398.57,-36.03 408.78,-33.19 399.03,-29.05 398.57,-36.03"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
<g id="navigator" transform="translate(0 0)" fill="#404254">
|
||||
<rect fill="#f2f5e9" fill-opacity="0.5" stroke="#606060" stroke-width=".5" x="0" y="0" width="60" height="60"/>
|
||||
<use id="zoomplus" xlink:href="#zoomPlus" x="17" y="9" onmousedown="handleZoom(evt,'in')"/>
|
||||
<use id="zoomminus" xlink:href="#zoomMin" x="42" y="9" onmousedown="handleZoom(evt,'out')"/>
|
||||
<use id="reset" xlink:href="#resetDef" x="30" y="36" onmousedown="handleReset()"/>
|
||||
<g id="arrowUp" xlink:href="#dirArrow" transform="translate(30 24)" onmousedown="handlePan(0,-1)">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="arrowUp.mouseover" end="arrowUp.mouseout"/>
|
||||
</use>
|
||||
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
|
||||
</g>
|
||||
<g id="arrowRight" xlink:href="#dirArrow" transform="rotate(90) translate(36 -43)" onmousedown="handlePan(1,0)">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="arrowRight.mouseover" end="arrowRight.mouseout"/>
|
||||
</use>
|
||||
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
|
||||
</g>
|
||||
<g id="arrowDown" xlink:href="#dirArrow" transform="rotate(180) translate(-30 -48)" onmousedown="handlePan(0,1)">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="arrowDown.mouseover" end="arrowDown.mouseout"/>
|
||||
</use>
|
||||
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
|
||||
</g>
|
||||
<g id="arrowLeft" xlink:href="#dirArrow" transform="rotate(270) translate(-36 17)" onmousedown="handlePan(-1,0)">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="arrowLeft.mouseover" end="arrowLeft.mouseout"/>
|
||||
</use>
|
||||
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
|
||||
</g>
|
||||
</g>
|
||||
<svg viewBox="0 0 15 15" width="100%" height="30px" preserveAspectRatio="xMaxYMin meet">
|
||||
<g id="arrow_out" transform="scale(0.3 0.3)">
|
||||
<a xlink:href="persistent__seg__tree__lazy__prop_8cpp_aa8dca7b867074164d5f45b0f3851269d_cgraph_org.svg" target="_base">
|
||||
<rect id="button" ry="5" rx="5" y="6" x="6" height="38" width="38"
|
||||
fill="#f2f5e9" fill-opacity="0.5" stroke="#606060" stroke-width="1.0"/>
|
||||
<path id="arrow"
|
||||
d="M 11.500037,31.436501 C 11.940474,20.09759 22.043105,11.32322 32.158766,21.979434 L 37.068811,17.246167 C 37.068811,17.246167 37.088388,32 37.088388,32 L 22.160133,31.978069 C 22.160133,31.978069 26.997745,27.140456 26.997745,27.140456 C 18.528582,18.264221 13.291696,25.230495 11.500037,31.436501 z"
|
||||
style="fill:#404040;"/>
|
||||
</a>
|
||||
</g>
|
||||
</svg>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 13 KiB |
@@ -0,0 +1,151 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.0 (20210118.1747)
|
||||
-->
|
||||
<!-- Title: test Pages: 1 -->
|
||||
<svg width="551pt" height="225pt"
|
||||
viewBox="0.00 0.00 551.00 225.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 221)">
|
||||
<title>test</title>
|
||||
<polygon fill="white" stroke="transparent" points="-4,4 -4,-221 547,-221 547,4 -4,4"/>
|
||||
<!-- Node1 -->
|
||||
<g id="node1" class="node">
|
||||
<title>Node1</title>
|
||||
<g id="a_node1"><a xlink:title="Test implementations.">
|
||||
<polygon fill="#bfbfbf" stroke="black" points="0,-99 0,-118 33,-118 33,-99 0,-99"/>
|
||||
<text text-anchor="middle" x="16.5" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00">test</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node2 -->
|
||||
<g id="node2" class="node">
|
||||
<title>Node2</title>
|
||||
<g id="a_node2"><a xlink:href="../../d8/d28/classrange__queries_1_1per_seg_tree.html#a67d8371bc998c67d53e8f64db4f52767" target="_top" xlink:title="Constructing the segment tree with the early passed vector. Every call creates a node to hold the sum...">
|
||||
<polygon fill="white" stroke="black" points="69,-186.5 69,-216.5 203,-216.5 203,-186.5 69,-186.5"/>
|
||||
<text text-anchor="start" x="77" y="-204.5" font-family="Helvetica,sans-Serif" font-size="10.00">range_queries::perSegTree</text>
|
||||
<text text-anchor="middle" x="136" y="-193.5" font-family="Helvetica,sans-Serif" font-size="10.00">::construct</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node2 -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>Node1->Node2</title>
|
||||
<path fill="none" stroke="midnightblue" d="M22.45,-118.39C30.35,-133.24 47.17,-161.27 69,-177.5 70.87,-178.89 72.83,-180.2 74.85,-181.45"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="73.6,-184.75 84.05,-186.47 76.95,-178.61 73.6,-184.75"/>
|
||||
</g>
|
||||
<!-- Node3 -->
|
||||
<g id="node3" class="node">
|
||||
<title>Node3</title>
|
||||
<g id="a_node3"><a xlink:href="../../d8/d28/classrange__queries_1_1per_seg_tree.html#ae8ae4b1835e5e8aec32f68c5059ed4d4" target="_top" xlink:title="Querying the range from index l to index r, checking at every node if it has some value to be propaga...">
|
||||
<polygon fill="white" stroke="black" points="69,-49.5 69,-79.5 203,-79.5 203,-49.5 69,-49.5"/>
|
||||
<text text-anchor="start" x="77" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00">range_queries::perSegTree</text>
|
||||
<text text-anchor="middle" x="136" y="-56.5" font-family="Helvetica,sans-Serif" font-size="10.00">::query</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node3 -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>Node1->Node3</title>
|
||||
<path fill="none" stroke="midnightblue" d="M33.35,-102.57C46.74,-97.55 66.66,-90.09 85.33,-83.1"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="86.8,-86.29 94.94,-79.5 84.35,-79.73 86.8,-86.29"/>
|
||||
</g>
|
||||
<!-- Node6 -->
|
||||
<g id="node6" class="node">
|
||||
<title>Node6</title>
|
||||
<g id="a_node6"><a xlink:href="../../d8/d28/classrange__queries_1_1per_seg_tree.html#a0fe4e431f3e09c274ecd7d2d58dcb865" target="_top" xlink:title="Getting the number of versions after updates so far which is equal to the size of the pointers vector...">
|
||||
<polygon fill="white" stroke="black" points="69,-137.5 69,-167.5 203,-167.5 203,-137.5 69,-137.5"/>
|
||||
<text text-anchor="start" x="77" y="-155.5" font-family="Helvetica,sans-Serif" font-size="10.00">range_queries::perSegTree</text>
|
||||
<text text-anchor="middle" x="136" y="-144.5" font-family="Helvetica,sans-Serif" font-size="10.00">::size</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node6 -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>Node1->Node6</title>
|
||||
<path fill="none" stroke="midnightblue" d="M33.35,-114.43C46.74,-119.45 66.66,-126.91 85.33,-133.9"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="84.35,-137.27 94.94,-137.5 86.8,-130.71 84.35,-137.27"/>
|
||||
</g>
|
||||
<!-- Node7 -->
|
||||
<g id="node7" class="node">
|
||||
<title>Node7</title>
|
||||
<g id="a_node7"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/size.html#" xlink:title=" ">
|
||||
<polygon fill="white" stroke="black" points="262.5,-121 262.5,-140 349.5,-140 349.5,-121 262.5,-121"/>
|
||||
<text text-anchor="middle" x="306" y="-128" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector::size</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node7 -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>Node1->Node7</title>
|
||||
<path fill="none" stroke="midnightblue" d="M33.37,-109.71C74.38,-112.85 185.33,-121.34 252.06,-126.45"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="252.14,-129.97 262.38,-127.24 252.67,-122.99 252.14,-129.97"/>
|
||||
</g>
|
||||
<!-- Node8 -->
|
||||
<g id="node8" class="node">
|
||||
<title>Node8</title>
|
||||
<g id="a_node8"><a xlink:href="../../d8/d28/classrange__queries_1_1per_seg_tree.html#af16c0c87b29119f066041d6e71ab50e0" target="_top" xlink:title="Doing range update, checking at every node if it has some value to be propagated. All nodes affected ...">
|
||||
<polygon fill="white" stroke="black" points="69,-0.5 69,-30.5 203,-30.5 203,-0.5 69,-0.5"/>
|
||||
<text text-anchor="start" x="77" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">range_queries::perSegTree</text>
|
||||
<text text-anchor="middle" x="136" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">::update</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node8 -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>Node1->Node8</title>
|
||||
<path fill="none" stroke="midnightblue" d="M22.45,-98.61C30.35,-83.76 47.17,-55.73 69,-39.5 70.87,-38.11 72.83,-36.8 74.85,-35.55"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="76.95,-38.39 84.05,-30.53 73.6,-32.25 76.95,-38.39"/>
|
||||
</g>
|
||||
<!-- Node4 -->
|
||||
<g id="node4" class="node">
|
||||
<title>Node4</title>
|
||||
<g id="a_node4"><a xlink:href="../../d8/d28/classrange__queries_1_1per_seg_tree.html#ace7f57935b3bb9446f11c239fd89ae79" target="_top" xlink:title="If there is some value to be propagated to the passed node, value is added to the node and the childr...">
|
||||
<polygon fill="white" stroke="black" points="239,-44.5 239,-74.5 373,-74.5 373,-44.5 239,-44.5"/>
|
||||
<text text-anchor="start" x="247" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">range_queries::perSegTree</text>
|
||||
<text text-anchor="middle" x="306" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">::lazy</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node3->Node4 -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>Node3->Node4</title>
|
||||
<path fill="none" stroke="midnightblue" d="M203.4,-62.52C211.68,-62.28 220.2,-62.02 228.62,-61.77"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="228.92,-65.27 238.81,-61.47 228.71,-58.27 228.92,-65.27"/>
|
||||
</g>
|
||||
<!-- Node5 -->
|
||||
<g id="node5" class="node">
|
||||
<title>Node5</title>
|
||||
<g id="a_node5"><a xlink:href="../../d8/d28/classrange__queries_1_1per_seg_tree.html#acacb937f95a078a236a4a58f9630a045" target="_top" xlink:title="Creating a new node with the same values of curr node.">
|
||||
<polygon fill="white" stroke="black" points="409,-22.5 409,-52.5 543,-52.5 543,-22.5 409,-22.5"/>
|
||||
<text text-anchor="start" x="417" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00">range_queries::perSegTree</text>
|
||||
<text text-anchor="middle" x="476" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">::newKid</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node4->Node5 -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>Node4->Node5</title>
|
||||
<path fill="none" stroke="midnightblue" d="M373.4,-50.81C381.77,-49.71 390.39,-48.58 398.89,-47.47"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="399.35,-50.94 408.81,-46.17 398.44,-44 399.35,-50.94"/>
|
||||
</g>
|
||||
<!-- Node6->Node7 -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>Node6->Node7</title>
|
||||
<path fill="none" stroke="midnightblue" d="M203.4,-143.81C219.65,-141.68 236.82,-139.43 252.33,-137.4"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="252.79,-140.87 262.25,-136.1 251.88,-133.93 252.79,-140.87"/>
|
||||
</g>
|
||||
<!-- Node8->Node4 -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>Node8->Node4</title>
|
||||
<path fill="none" stroke="midnightblue" d="M194.35,-30.52C208.33,-34.18 223.4,-38.13 237.8,-41.9"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="237.07,-45.33 247.63,-44.47 238.84,-38.55 237.07,-45.33"/>
|
||||
</g>
|
||||
<!-- Node8->Node5 -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>Node8->Node5</title>
|
||||
<path fill="none" stroke="midnightblue" d="M203.37,-19.82C259.42,-23.47 339.69,-28.69 398.44,-32.52"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="398.57,-36.03 408.78,-33.19 399.03,-29.05 398.57,-36.03"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 8.4 KiB |
@@ -0,0 +1,11 @@
|
||||
<map id="main" name="main">
|
||||
<area shape="rect" id="node1" title="Main function." alt="" coords="5,137,56,163"/>
|
||||
<area shape="rect" id="node2" href="$d5/d58/persistent__seg__tree__lazy__prop_8cpp.html#aa8dca7b867074164d5f45b0f3851269d" title="Test implementations." alt="" coords="104,137,148,163"/>
|
||||
<area shape="rect" id="node3" href="$d8/d28/classrange__queries_1_1per_seg_tree.html#a67d8371bc998c67d53e8f64db4f52767" title="Constructing the segment tree with the early passed vector. Every call creates a node to hold the sum..." alt="" coords="196,5,375,47"/>
|
||||
<area shape="rect" id="node4" href="$d8/d28/classrange__queries_1_1per_seg_tree.html#ae8ae4b1835e5e8aec32f68c5059ed4d4" title="Querying the range from index l to index r, checking at every node if it has some value to be propaga..." alt="" coords="196,188,375,229"/>
|
||||
<area shape="rect" id="node7" href="$d8/d28/classrange__queries_1_1per_seg_tree.html#a0fe4e431f3e09c274ecd7d2d58dcb865" title="Getting the number of versions after updates so far which is equal to the size of the pointers vector..." alt="" coords="196,71,375,112"/>
|
||||
<area shape="rect" id="node8" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector/size.html#" title=" " alt="" coords="454,107,570,134"/>
|
||||
<area shape="rect" id="node9" href="$d8/d28/classrange__queries_1_1per_seg_tree.html#af16c0c87b29119f066041d6e71ab50e0" title="Doing range update, checking at every node if it has some value to be propagated. All nodes affected ..." alt="" coords="196,253,375,295"/>
|
||||
<area shape="rect" id="node5" href="$d8/d28/classrange__queries_1_1per_seg_tree.html#ace7f57935b3bb9446f11c239fd89ae79" title="If there is some value to be propagated to the passed node, value is added to the node and the childr..." alt="" coords="423,195,601,236"/>
|
||||
<area shape="rect" id="node6" href="$d8/d28/classrange__queries_1_1per_seg_tree.html#acacb937f95a078a236a4a58f9630a045" title="Creating a new node with the same values of curr node." alt="" coords="649,224,828,265"/>
|
||||
</map>
|
||||
@@ -0,0 +1 @@
|
||||
6300b967ba7d550335a604dc2b2d8664
|
||||
@@ -0,0 +1,254 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.0 (20210118.1747)
|
||||
-->
|
||||
<!-- Title: main Pages: 1 -->
|
||||
<!--zoomable 225 -->
|
||||
<svg id="main" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" onload="init(evt)">
|
||||
<style type="text/css"><![CDATA[
|
||||
.edge:hover path { stroke: red; }
|
||||
.edge:hover polygon { stroke: red; fill: red; }
|
||||
]]></style>
|
||||
<script type="text/javascript"><![CDATA[
|
||||
var edges = document.getElementsByTagName('g');
|
||||
if (edges && edges.length) {
|
||||
for (var i=0;i<edges.length;i++) {
|
||||
if (edges[i].id.substr(0,4)=='edge') {
|
||||
edges[i].setAttribute('class','edge');
|
||||
}
|
||||
}
|
||||
}
|
||||
]]></script>
|
||||
<defs>
|
||||
<circle id="rim" cx="0" cy="0" r="7"/>
|
||||
<circle id="rim2" cx="0" cy="0" r="3.5"/>
|
||||
<g id="zoomPlus">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="zoomplus.mouseover" end="zoomplus.mouseout"/>
|
||||
</use>
|
||||
<path d="M-4,0h8M0,-4v8" fill="none" stroke="white" stroke-width="1.5" pointer-events="none"/>
|
||||
</g>
|
||||
<g id="zoomMin">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="zoomminus.mouseover" end="zoomminus.mouseout"/>
|
||||
</use>
|
||||
<path d="M-4,0h8" fill="none" stroke="white" stroke-width="1.5" pointer-events="none"/>
|
||||
</g>
|
||||
<g id="dirArrow">
|
||||
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
|
||||
</g>
|
||||
<g id="resetDef">
|
||||
<use xlink:href="#rim2" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="reset.mouseover" end="reset.mouseout"/>
|
||||
</use>
|
||||
</g>
|
||||
</defs>
|
||||
|
||||
<script type="text/javascript">
|
||||
var viewWidth = 625;
|
||||
var viewHeight = 225;
|
||||
var sectionId = 'dynsection-1';
|
||||
</script>
|
||||
<script xlink:href="../../svgpan.js"/>
|
||||
<svg id="graph" class="graph">
|
||||
<g id="viewport">
|
||||
<title>main</title>
|
||||
<polygon fill="white" stroke="transparent" points="-4,4 -4,-221 621,-221 621,4 -4,4"/>
|
||||
<!-- Node1 -->
|
||||
<g id="node1" class="node">
|
||||
<title>Node1</title>
|
||||
<g id="a_node1"><a xlink:title="Main function.">
|
||||
<polygon fill="#bfbfbf" stroke="black" points="0,-99 0,-118 38,-118 38,-99 0,-99"/>
|
||||
<text text-anchor="middle" x="19" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00">main</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node2 -->
|
||||
<g id="node2" class="node">
|
||||
<title>Node2</title>
|
||||
<g id="a_node2"><a xlink:href="../../d5/d58/persistent__seg__tree__lazy__prop_8cpp.html#aa8dca7b867074164d5f45b0f3851269d" target="_top" xlink:title="Test implementations.">
|
||||
<polygon fill="white" stroke="black" points="74,-99 74,-118 107,-118 107,-99 74,-99"/>
|
||||
<text text-anchor="middle" x="90.5" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00">test</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node2 -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>Node1->Node2</title>
|
||||
<path fill="none" stroke="midnightblue" d="M38.26,-108.5C46.07,-108.5 55.31,-108.5 63.79,-108.5"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="63.95,-112 73.95,-108.5 63.95,-105 63.95,-112"/>
|
||||
</g>
|
||||
<!-- Node3 -->
|
||||
<g id="node3" class="node">
|
||||
<title>Node3</title>
|
||||
<g id="a_node3"><a xlink:href="../../d8/d28/classrange__queries_1_1per_seg_tree.html#a67d8371bc998c67d53e8f64db4f52767" target="_top" xlink:title="Constructing the segment tree with the early passed vector. Every call creates a node to hold the sum...">
|
||||
<polygon fill="white" stroke="black" points="143,-186.5 143,-216.5 277,-216.5 277,-186.5 143,-186.5"/>
|
||||
<text text-anchor="start" x="151" y="-204.5" font-family="Helvetica,sans-Serif" font-size="10.00">range_queries::perSegTree</text>
|
||||
<text text-anchor="middle" x="210" y="-193.5" font-family="Helvetica,sans-Serif" font-size="10.00">::construct</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node2->Node3 -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>Node2->Node3</title>
|
||||
<path fill="none" stroke="midnightblue" d="M96.45,-118.39C104.35,-133.24 121.17,-161.27 143,-177.5 144.87,-178.89 146.83,-180.2 148.85,-181.45"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="147.6,-184.75 158.05,-186.47 150.95,-178.61 147.6,-184.75"/>
|
||||
</g>
|
||||
<!-- Node4 -->
|
||||
<g id="node4" class="node">
|
||||
<title>Node4</title>
|
||||
<g id="a_node4"><a xlink:href="../../d8/d28/classrange__queries_1_1per_seg_tree.html#ae8ae4b1835e5e8aec32f68c5059ed4d4" target="_top" xlink:title="Querying the range from index l to index r, checking at every node if it has some value to be propaga...">
|
||||
<polygon fill="white" stroke="black" points="143,-49.5 143,-79.5 277,-79.5 277,-49.5 143,-49.5"/>
|
||||
<text text-anchor="start" x="151" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00">range_queries::perSegTree</text>
|
||||
<text text-anchor="middle" x="210" y="-56.5" font-family="Helvetica,sans-Serif" font-size="10.00">::query</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node2->Node4 -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>Node2->Node4</title>
|
||||
<path fill="none" stroke="midnightblue" d="M107.35,-102.57C120.74,-97.55 140.66,-90.09 159.33,-83.1"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="160.8,-86.29 168.94,-79.5 158.35,-79.73 160.8,-86.29"/>
|
||||
</g>
|
||||
<!-- Node7 -->
|
||||
<g id="node7" class="node">
|
||||
<title>Node7</title>
|
||||
<g id="a_node7"><a xlink:href="../../d8/d28/classrange__queries_1_1per_seg_tree.html#a0fe4e431f3e09c274ecd7d2d58dcb865" target="_top" xlink:title="Getting the number of versions after updates so far which is equal to the size of the pointers vector...">
|
||||
<polygon fill="white" stroke="black" points="143,-137.5 143,-167.5 277,-167.5 277,-137.5 143,-137.5"/>
|
||||
<text text-anchor="start" x="151" y="-155.5" font-family="Helvetica,sans-Serif" font-size="10.00">range_queries::perSegTree</text>
|
||||
<text text-anchor="middle" x="210" y="-144.5" font-family="Helvetica,sans-Serif" font-size="10.00">::size</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node2->Node7 -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>Node2->Node7</title>
|
||||
<path fill="none" stroke="midnightblue" d="M107.35,-114.43C120.74,-119.45 140.66,-126.91 159.33,-133.9"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="158.35,-137.27 168.94,-137.5 160.8,-130.71 158.35,-137.27"/>
|
||||
</g>
|
||||
<!-- Node8 -->
|
||||
<g id="node8" class="node">
|
||||
<title>Node8</title>
|
||||
<g id="a_node8"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/size.html#" xlink:title=" ">
|
||||
<polygon fill="white" stroke="black" points="336.5,-121 336.5,-140 423.5,-140 423.5,-121 336.5,-121"/>
|
||||
<text text-anchor="middle" x="380" y="-128" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector::size</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node2->Node8 -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>Node2->Node8</title>
|
||||
<path fill="none" stroke="midnightblue" d="M107.37,-109.71C148.38,-112.85 259.33,-121.34 326.06,-126.45"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="326.14,-129.97 336.38,-127.24 326.67,-122.99 326.14,-129.97"/>
|
||||
</g>
|
||||
<!-- Node9 -->
|
||||
<g id="node9" class="node">
|
||||
<title>Node9</title>
|
||||
<g id="a_node9"><a xlink:href="../../d8/d28/classrange__queries_1_1per_seg_tree.html#af16c0c87b29119f066041d6e71ab50e0" target="_top" xlink:title="Doing range update, checking at every node if it has some value to be propagated. All nodes affected ...">
|
||||
<polygon fill="white" stroke="black" points="143,-0.5 143,-30.5 277,-30.5 277,-0.5 143,-0.5"/>
|
||||
<text text-anchor="start" x="151" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">range_queries::perSegTree</text>
|
||||
<text text-anchor="middle" x="210" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">::update</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node2->Node9 -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>Node2->Node9</title>
|
||||
<path fill="none" stroke="midnightblue" d="M96.45,-98.61C104.35,-83.76 121.17,-55.73 143,-39.5 144.87,-38.11 146.83,-36.8 148.85,-35.55"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="150.95,-38.39 158.05,-30.53 147.6,-32.25 150.95,-38.39"/>
|
||||
</g>
|
||||
<!-- Node5 -->
|
||||
<g id="node5" class="node">
|
||||
<title>Node5</title>
|
||||
<g id="a_node5"><a xlink:href="../../d8/d28/classrange__queries_1_1per_seg_tree.html#ace7f57935b3bb9446f11c239fd89ae79" target="_top" xlink:title="If there is some value to be propagated to the passed node, value is added to the node and the childr...">
|
||||
<polygon fill="white" stroke="black" points="313,-44.5 313,-74.5 447,-74.5 447,-44.5 313,-44.5"/>
|
||||
<text text-anchor="start" x="321" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">range_queries::perSegTree</text>
|
||||
<text text-anchor="middle" x="380" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">::lazy</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node4->Node5 -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>Node4->Node5</title>
|
||||
<path fill="none" stroke="midnightblue" d="M277.4,-62.52C285.68,-62.28 294.2,-62.02 302.62,-61.77"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="302.92,-65.27 312.81,-61.47 302.71,-58.27 302.92,-65.27"/>
|
||||
</g>
|
||||
<!-- Node6 -->
|
||||
<g id="node6" class="node">
|
||||
<title>Node6</title>
|
||||
<g id="a_node6"><a xlink:href="../../d8/d28/classrange__queries_1_1per_seg_tree.html#acacb937f95a078a236a4a58f9630a045" target="_top" xlink:title="Creating a new node with the same values of curr node.">
|
||||
<polygon fill="white" stroke="black" points="483,-22.5 483,-52.5 617,-52.5 617,-22.5 483,-22.5"/>
|
||||
<text text-anchor="start" x="491" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00">range_queries::perSegTree</text>
|
||||
<text text-anchor="middle" x="550" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">::newKid</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node5->Node6 -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>Node5->Node6</title>
|
||||
<path fill="none" stroke="midnightblue" d="M447.4,-50.81C455.77,-49.71 464.39,-48.58 472.89,-47.47"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="473.35,-50.94 482.81,-46.17 472.44,-44 473.35,-50.94"/>
|
||||
</g>
|
||||
<!-- Node7->Node8 -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>Node7->Node8</title>
|
||||
<path fill="none" stroke="midnightblue" d="M277.4,-143.81C293.65,-141.68 310.82,-139.43 326.33,-137.4"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="326.79,-140.87 336.25,-136.1 325.88,-133.93 326.79,-140.87"/>
|
||||
</g>
|
||||
<!-- Node9->Node5 -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>Node9->Node5</title>
|
||||
<path fill="none" stroke="midnightblue" d="M268.35,-30.52C282.33,-34.18 297.4,-38.13 311.8,-41.9"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="311.07,-45.33 321.63,-44.47 312.84,-38.55 311.07,-45.33"/>
|
||||
</g>
|
||||
<!-- Node9->Node6 -->
|
||||
<g id="edge11" class="edge">
|
||||
<title>Node9->Node6</title>
|
||||
<path fill="none" stroke="midnightblue" d="M277.37,-19.82C333.42,-23.47 413.69,-28.69 472.44,-32.52"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="472.57,-36.03 482.78,-33.19 473.03,-29.05 472.57,-36.03"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
<g id="navigator" transform="translate(0 0)" fill="#404254">
|
||||
<rect fill="#f2f5e9" fill-opacity="0.5" stroke="#606060" stroke-width=".5" x="0" y="0" width="60" height="60"/>
|
||||
<use id="zoomplus" xlink:href="#zoomPlus" x="17" y="9" onmousedown="handleZoom(evt,'in')"/>
|
||||
<use id="zoomminus" xlink:href="#zoomMin" x="42" y="9" onmousedown="handleZoom(evt,'out')"/>
|
||||
<use id="reset" xlink:href="#resetDef" x="30" y="36" onmousedown="handleReset()"/>
|
||||
<g id="arrowUp" xlink:href="#dirArrow" transform="translate(30 24)" onmousedown="handlePan(0,-1)">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="arrowUp.mouseover" end="arrowUp.mouseout"/>
|
||||
</use>
|
||||
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
|
||||
</g>
|
||||
<g id="arrowRight" xlink:href="#dirArrow" transform="rotate(90) translate(36 -43)" onmousedown="handlePan(1,0)">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="arrowRight.mouseover" end="arrowRight.mouseout"/>
|
||||
</use>
|
||||
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
|
||||
</g>
|
||||
<g id="arrowDown" xlink:href="#dirArrow" transform="rotate(180) translate(-30 -48)" onmousedown="handlePan(0,1)">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="arrowDown.mouseover" end="arrowDown.mouseout"/>
|
||||
</use>
|
||||
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
|
||||
</g>
|
||||
<g id="arrowLeft" xlink:href="#dirArrow" transform="rotate(270) translate(-36 17)" onmousedown="handlePan(-1,0)">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="arrowLeft.mouseover" end="arrowLeft.mouseout"/>
|
||||
</use>
|
||||
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
|
||||
</g>
|
||||
</g>
|
||||
<svg viewBox="0 0 15 15" width="100%" height="30px" preserveAspectRatio="xMaxYMin meet">
|
||||
<g id="arrow_out" transform="scale(0.3 0.3)">
|
||||
<a xlink:href="persistent__seg__tree__lazy__prop_8cpp_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph_org.svg" target="_base">
|
||||
<rect id="button" ry="5" rx="5" y="6" x="6" height="38" width="38"
|
||||
fill="#f2f5e9" fill-opacity="0.5" stroke="#606060" stroke-width="1.0"/>
|
||||
<path id="arrow"
|
||||
d="M 11.500037,31.436501 C 11.940474,20.09759 22.043105,11.32322 32.158766,21.979434 L 37.068811,17.246167 C 37.068811,17.246167 37.088388,32 37.088388,32 L 22.160133,31.978069 C 22.160133,31.978069 26.997745,27.140456 26.997745,27.140456 C 18.528582,18.264221 13.291696,25.230495 11.500037,31.436501 z"
|
||||
style="fill:#404040;"/>
|
||||
</a>
|
||||
</g>
|
||||
</svg>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 14 KiB |
@@ -0,0 +1,166 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.0 (20210118.1747)
|
||||
-->
|
||||
<!-- Title: main Pages: 1 -->
|
||||
<svg width="625pt" height="225pt"
|
||||
viewBox="0.00 0.00 625.00 225.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 221)">
|
||||
<title>main</title>
|
||||
<polygon fill="white" stroke="transparent" points="-4,4 -4,-221 621,-221 621,4 -4,4"/>
|
||||
<!-- Node1 -->
|
||||
<g id="node1" class="node">
|
||||
<title>Node1</title>
|
||||
<g id="a_node1"><a xlink:title="Main function.">
|
||||
<polygon fill="#bfbfbf" stroke="black" points="0,-99 0,-118 38,-118 38,-99 0,-99"/>
|
||||
<text text-anchor="middle" x="19" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00">main</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node2 -->
|
||||
<g id="node2" class="node">
|
||||
<title>Node2</title>
|
||||
<g id="a_node2"><a xlink:href="../../d5/d58/persistent__seg__tree__lazy__prop_8cpp.html#aa8dca7b867074164d5f45b0f3851269d" target="_top" xlink:title="Test implementations.">
|
||||
<polygon fill="white" stroke="black" points="74,-99 74,-118 107,-118 107,-99 74,-99"/>
|
||||
<text text-anchor="middle" x="90.5" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00">test</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node2 -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>Node1->Node2</title>
|
||||
<path fill="none" stroke="midnightblue" d="M38.26,-108.5C46.07,-108.5 55.31,-108.5 63.79,-108.5"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="63.95,-112 73.95,-108.5 63.95,-105 63.95,-112"/>
|
||||
</g>
|
||||
<!-- Node3 -->
|
||||
<g id="node3" class="node">
|
||||
<title>Node3</title>
|
||||
<g id="a_node3"><a xlink:href="../../d8/d28/classrange__queries_1_1per_seg_tree.html#a67d8371bc998c67d53e8f64db4f52767" target="_top" xlink:title="Constructing the segment tree with the early passed vector. Every call creates a node to hold the sum...">
|
||||
<polygon fill="white" stroke="black" points="143,-186.5 143,-216.5 277,-216.5 277,-186.5 143,-186.5"/>
|
||||
<text text-anchor="start" x="151" y="-204.5" font-family="Helvetica,sans-Serif" font-size="10.00">range_queries::perSegTree</text>
|
||||
<text text-anchor="middle" x="210" y="-193.5" font-family="Helvetica,sans-Serif" font-size="10.00">::construct</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node2->Node3 -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>Node2->Node3</title>
|
||||
<path fill="none" stroke="midnightblue" d="M96.45,-118.39C104.35,-133.24 121.17,-161.27 143,-177.5 144.87,-178.89 146.83,-180.2 148.85,-181.45"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="147.6,-184.75 158.05,-186.47 150.95,-178.61 147.6,-184.75"/>
|
||||
</g>
|
||||
<!-- Node4 -->
|
||||
<g id="node4" class="node">
|
||||
<title>Node4</title>
|
||||
<g id="a_node4"><a xlink:href="../../d8/d28/classrange__queries_1_1per_seg_tree.html#ae8ae4b1835e5e8aec32f68c5059ed4d4" target="_top" xlink:title="Querying the range from index l to index r, checking at every node if it has some value to be propaga...">
|
||||
<polygon fill="white" stroke="black" points="143,-49.5 143,-79.5 277,-79.5 277,-49.5 143,-49.5"/>
|
||||
<text text-anchor="start" x="151" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00">range_queries::perSegTree</text>
|
||||
<text text-anchor="middle" x="210" y="-56.5" font-family="Helvetica,sans-Serif" font-size="10.00">::query</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node2->Node4 -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>Node2->Node4</title>
|
||||
<path fill="none" stroke="midnightblue" d="M107.35,-102.57C120.74,-97.55 140.66,-90.09 159.33,-83.1"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="160.8,-86.29 168.94,-79.5 158.35,-79.73 160.8,-86.29"/>
|
||||
</g>
|
||||
<!-- Node7 -->
|
||||
<g id="node7" class="node">
|
||||
<title>Node7</title>
|
||||
<g id="a_node7"><a xlink:href="../../d8/d28/classrange__queries_1_1per_seg_tree.html#a0fe4e431f3e09c274ecd7d2d58dcb865" target="_top" xlink:title="Getting the number of versions after updates so far which is equal to the size of the pointers vector...">
|
||||
<polygon fill="white" stroke="black" points="143,-137.5 143,-167.5 277,-167.5 277,-137.5 143,-137.5"/>
|
||||
<text text-anchor="start" x="151" y="-155.5" font-family="Helvetica,sans-Serif" font-size="10.00">range_queries::perSegTree</text>
|
||||
<text text-anchor="middle" x="210" y="-144.5" font-family="Helvetica,sans-Serif" font-size="10.00">::size</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node2->Node7 -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>Node2->Node7</title>
|
||||
<path fill="none" stroke="midnightblue" d="M107.35,-114.43C120.74,-119.45 140.66,-126.91 159.33,-133.9"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="158.35,-137.27 168.94,-137.5 160.8,-130.71 158.35,-137.27"/>
|
||||
</g>
|
||||
<!-- Node8 -->
|
||||
<g id="node8" class="node">
|
||||
<title>Node8</title>
|
||||
<g id="a_node8"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/size.html#" xlink:title=" ">
|
||||
<polygon fill="white" stroke="black" points="336.5,-121 336.5,-140 423.5,-140 423.5,-121 336.5,-121"/>
|
||||
<text text-anchor="middle" x="380" y="-128" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector::size</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node2->Node8 -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>Node2->Node8</title>
|
||||
<path fill="none" stroke="midnightblue" d="M107.37,-109.71C148.38,-112.85 259.33,-121.34 326.06,-126.45"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="326.14,-129.97 336.38,-127.24 326.67,-122.99 326.14,-129.97"/>
|
||||
</g>
|
||||
<!-- Node9 -->
|
||||
<g id="node9" class="node">
|
||||
<title>Node9</title>
|
||||
<g id="a_node9"><a xlink:href="../../d8/d28/classrange__queries_1_1per_seg_tree.html#af16c0c87b29119f066041d6e71ab50e0" target="_top" xlink:title="Doing range update, checking at every node if it has some value to be propagated. All nodes affected ...">
|
||||
<polygon fill="white" stroke="black" points="143,-0.5 143,-30.5 277,-30.5 277,-0.5 143,-0.5"/>
|
||||
<text text-anchor="start" x="151" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">range_queries::perSegTree</text>
|
||||
<text text-anchor="middle" x="210" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">::update</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node2->Node9 -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>Node2->Node9</title>
|
||||
<path fill="none" stroke="midnightblue" d="M96.45,-98.61C104.35,-83.76 121.17,-55.73 143,-39.5 144.87,-38.11 146.83,-36.8 148.85,-35.55"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="150.95,-38.39 158.05,-30.53 147.6,-32.25 150.95,-38.39"/>
|
||||
</g>
|
||||
<!-- Node5 -->
|
||||
<g id="node5" class="node">
|
||||
<title>Node5</title>
|
||||
<g id="a_node5"><a xlink:href="../../d8/d28/classrange__queries_1_1per_seg_tree.html#ace7f57935b3bb9446f11c239fd89ae79" target="_top" xlink:title="If there is some value to be propagated to the passed node, value is added to the node and the childr...">
|
||||
<polygon fill="white" stroke="black" points="313,-44.5 313,-74.5 447,-74.5 447,-44.5 313,-44.5"/>
|
||||
<text text-anchor="start" x="321" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">range_queries::perSegTree</text>
|
||||
<text text-anchor="middle" x="380" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">::lazy</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node4->Node5 -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>Node4->Node5</title>
|
||||
<path fill="none" stroke="midnightblue" d="M277.4,-62.52C285.68,-62.28 294.2,-62.02 302.62,-61.77"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="302.92,-65.27 312.81,-61.47 302.71,-58.27 302.92,-65.27"/>
|
||||
</g>
|
||||
<!-- Node6 -->
|
||||
<g id="node6" class="node">
|
||||
<title>Node6</title>
|
||||
<g id="a_node6"><a xlink:href="../../d8/d28/classrange__queries_1_1per_seg_tree.html#acacb937f95a078a236a4a58f9630a045" target="_top" xlink:title="Creating a new node with the same values of curr node.">
|
||||
<polygon fill="white" stroke="black" points="483,-22.5 483,-52.5 617,-52.5 617,-22.5 483,-22.5"/>
|
||||
<text text-anchor="start" x="491" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00">range_queries::perSegTree</text>
|
||||
<text text-anchor="middle" x="550" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">::newKid</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node5->Node6 -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>Node5->Node6</title>
|
||||
<path fill="none" stroke="midnightblue" d="M447.4,-50.81C455.77,-49.71 464.39,-48.58 472.89,-47.47"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="473.35,-50.94 482.81,-46.17 472.44,-44 473.35,-50.94"/>
|
||||
</g>
|
||||
<!-- Node7->Node8 -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>Node7->Node8</title>
|
||||
<path fill="none" stroke="midnightblue" d="M277.4,-143.81C293.65,-141.68 310.82,-139.43 326.33,-137.4"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="326.79,-140.87 336.25,-136.1 325.88,-133.93 326.79,-140.87"/>
|
||||
</g>
|
||||
<!-- Node9->Node5 -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>Node9->Node5</title>
|
||||
<path fill="none" stroke="midnightblue" d="M268.35,-30.52C282.33,-34.18 297.4,-38.13 311.8,-41.9"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="311.07,-45.33 321.63,-44.47 312.84,-38.55 311.07,-45.33"/>
|
||||
</g>
|
||||
<!-- Node9->Node6 -->
|
||||
<g id="edge11" class="edge">
|
||||
<title>Node9->Node6</title>
|
||||
<path fill="none" stroke="midnightblue" d="M277.37,-19.82C333.42,-23.47 413.69,-28.69 472.44,-32.52"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="472.57,-36.03 482.78,-33.19 473.03,-29.05 472.57,-36.03"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 9.2 KiB |
Reference in New Issue
Block a user