|
7 | 7 |
|
8 | 8 | <title>1094 The Largest Generation (25分) | Hexo</title>
|
9 | 9 | <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
10 |
| - <meta name="description" content="树的遍历题意:给出谱系图(多叉树),求最多孩子的那一层的深度和宽度。 DFS遍历,记录每层的宽度,找最大的那个即可也可以用BFS做 12345678910111213141516171819202122232425262728293031323334353637383940414243444546#include <bits/stdc++.h>using namespace"> |
| 10 | + <meta name="description" content="树的遍历题意:给出谱系图(多叉树),求最多孩子的那一层的深度和宽度。 DFS遍历,记录每层的宽度,找最大的那个即可也可以用BFS做 12345678910111213141516171819202122232425262728293031323334353637383940414243444546#include <bits/stdc++.h>using namespace std;c"> |
11 | 11 | <meta property="og:type" content="article">
|
12 | 12 | <meta property="og:title" content="1094 The Largest Generation (25分)">
|
13 | 13 | <meta property="og:url" content="http://yoursite.com/2020/03/02/1094%20The%20Largest%20Generation%20(25%E5%88%86)/index.html">
|
14 | 14 | <meta property="og:site_name" content="Hexo">
|
15 |
| -<meta property="og:description" content="树的遍历题意:给出谱系图(多叉树),求最多孩子的那一层的深度和宽度。 DFS遍历,记录每层的宽度,找最大的那个即可也可以用BFS做 12345678910111213141516171819202122232425262728293031323334353637383940414243444546#include <bits/stdc++.h>using namespace"> |
| 15 | +<meta property="og:description" content="树的遍历题意:给出谱系图(多叉树),求最多孩子的那一层的深度和宽度。 DFS遍历,记录每层的宽度,找最大的那个即可也可以用BFS做 12345678910111213141516171819202122232425262728293031323334353637383940414243444546#include <bits/stdc++.h>using namespace std;c"> |
16 | 16 | <meta property="og:locale" content="en_US">
|
17 | 17 | <meta property="article:published_time" content="2020-03-02T03:50:29.787Z">
|
18 |
| -<meta property="article:modified_time" content="2020-03-02T03:50:29.787Z"> |
| 18 | +<meta property="article:modified_time" content="2020-03-05T03:44:07.840Z"> |
19 | 19 | <meta property="article:author" content="John Doe">
|
20 | 20 | <meta name="twitter:card" content="summary">
|
21 | 21 |
|
@@ -90,7 +90,7 @@ <h1 class="article-title" itemprop="name">
|
90 | 90 |
|
91 | 91 | <p>树的遍历<br><br>题意:给出谱系图(多叉树),求最多孩子的那一层的深度和宽度。</p>
|
92 | 92 | <p>DFS遍历,记录每层的宽度,找最大的那个即可<br><br>也可以用BFS做</p>
|
93 |
| -<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br></pre></td><td class="code"><pre><span class="line">#include <bits/stdc++.h></span><br><span class="line">using namespace std;</span><br><span class="line">const int maxn = 100 + 10;</span><br><span class="line"></span><br><span class="line">vector<int> tree[maxn];</span><br><span class="line">int level[maxn];</span><br><span class="line">bool vis[maxn];</span><br><span class="line"></span><br><span class="line">void DFS(int root, int cnt) {</span><br><span class="line"> level[cnt]++;</span><br><span class="line"> for (int i = 0; i < tree[root].size(); ++i)</span><br><span class="line"> DFS(tree[root][i], cnt + 1);</span><br><span class="line">}</span><br><span class="line"></span><br><span class="line">int main(int argc, char const *argv[])</span><br><span class="line">{</span><br><span class="line"> int N, M, j = 1, cnt = 0, ans, root;</span><br><span class="line"> cin >> N >> M;</span><br><span class="line"> memset(vis, false, sizeof(vis));</span><br><span class="line"> for (int i = 0; i < M; ++i) {</span><br><span class="line"> int ID, K, t;</span><br><span class="line"> cin >> ID >> K;</span><br><span class="line"> for (int j = 0; j < K; ++j) {</span><br><span class="line"> cin >> t;</span><br><span class="line"> tree[ID].push_back(t);</span><br><span class="line"> vis[t] = true;</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"> for (int i = 1; i <= N; ++i) {</span><br><span class="line"> if (!vis[i]) {</span><br><span class="line"> root = i;</span><br><span class="line"> break;</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"> DFS(root, 1);</span><br><span class="line"> while (level[j] != 0) {</span><br><span class="line"> if (level[j] > cnt) {</span><br><span class="line"> ans = j;</span><br><span class="line"> cnt = level[j];</span><br><span class="line"> }</span><br><span class="line"> j++;</span><br><span class="line"> }</span><br><span class="line"> cout << cnt << " " << ans << endl;</span><br><span class="line"></span><br><span class="line"> return 0;</span><br><span class="line">}</span><br></pre></td></tr></table></figure> |
| 93 | +<figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="meta-keyword">include</span> <span class="meta-string"><bits/stdc++.h></span></span></span><br><span class="line"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="built_in">std</span>;</span><br><span class="line"><span class="keyword">const</span> <span class="keyword">int</span> maxn = <span class="number">100</span> + <span class="number">10</span>;</span><br><span class="line"></span><br><span class="line"><span class="built_in">vector</span><<span class="keyword">int</span>> tree[maxn];</span><br><span class="line"><span class="keyword">int</span> level[maxn];</span><br><span class="line"><span class="keyword">bool</span> vis[maxn];</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">void</span> <span class="title">DFS</span><span class="params">(<span class="keyword">int</span> root, <span class="keyword">int</span> cnt)</span> </span>{</span><br><span class="line"> level[cnt]++;</span><br><span class="line"> <span class="keyword">for</span> (<span class="keyword">int</span> i = <span class="number">0</span>; i < tree[root].<span class="built_in">size</span>(); ++i)</span><br><span class="line"> DFS(tree[root][i], cnt + <span class="number">1</span>);</span><br><span class="line">}</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">int</span> <span class="title">main</span><span class="params">(<span class="keyword">int</span> argc, <span class="keyword">char</span> <span class="keyword">const</span> *argv[])</span></span></span><br><span class="line"><span class="function"></span>{</span><br><span class="line"> <span class="keyword">int</span> N, M, j = <span class="number">1</span>, cnt = <span class="number">0</span>, ans, root;</span><br><span class="line"> <span class="built_in">cin</span> >> N >> M;</span><br><span class="line"> <span class="built_in">memset</span>(vis, <span class="literal">false</span>, <span class="keyword">sizeof</span>(vis));</span><br><span class="line"> <span class="keyword">for</span> (<span class="keyword">int</span> i = <span class="number">0</span>; i < M; ++i) {</span><br><span class="line"> <span class="keyword">int</span> ID, K, t;</span><br><span class="line"> <span class="built_in">cin</span> >> ID >> K;</span><br><span class="line"> <span class="keyword">for</span> (<span class="keyword">int</span> j = <span class="number">0</span>; j < K; ++j) {</span><br><span class="line"> <span class="built_in">cin</span> >> t;</span><br><span class="line"> tree[ID].push_back(t);</span><br><span class="line"> vis[t] = <span class="literal">true</span>;</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">for</span> (<span class="keyword">int</span> i = <span class="number">1</span>; i <= N; ++i) {</span><br><span class="line"> <span class="keyword">if</span> (!vis[i]) {</span><br><span class="line"> root = i;</span><br><span class="line"> <span class="keyword">break</span>;</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"> DFS(root, <span class="number">1</span>);</span><br><span class="line"> <span class="keyword">while</span> (level[j] != <span class="number">0</span>) {</span><br><span class="line"> <span class="keyword">if</span> (level[j] > cnt) {</span><br><span class="line"> ans = j;</span><br><span class="line"> cnt = level[j];</span><br><span class="line"> }</span><br><span class="line"> j++;</span><br><span class="line"> }</span><br><span class="line"> <span class="built_in">cout</span> << cnt << <span class="string">" "</span> << ans << <span class="built_in">endl</span>;</span><br><span class="line"></span><br><span class="line"> <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">}</span><br></pre></td></tr></table></figure> |
94 | 94 |
|
95 | 95 |
|
96 | 96 | </div>
|
|
0 commit comments