hihoCoder 1224 賽車 (dfs,鄰接連結串列存邊)
描述
幻想鄉有一個賽車場。賽車場裡有N個地點。同時地點之間還有單向的道路存在。
這些道路使得賽車場形成了一個外向樹的結構。也就是說,道路將這N個地點連成了一個有根樹。並且所有的邊都是從父親指向孩子的。
由於幽香喜歡刺激,每次她去賽車場都會從根節點出發,選擇最長的一條路徑來玩。
但是現在幽香感覺最長的路徑還是太短了,她打算在賽車場裡新建一條道路使得新的最長路徑最長。
同時,如果道路形成了一個環,那麼可能會出現交通事故,所以幽香新建的道路不能導致環的出現。
你能幫幽香算出新建一條道路後的最長路徑嗎?幽香知道根節點一定是1號點。
輸入
一行一個數N,表示地點的數量。
接下來N-1行,每行兩個數a和b,表示從點a到點b有一條單向路徑。所有點從1到n標號。
資料範圍:
n<=100000。
輸出
一行表示新建一條邊後的最長路徑。
樣例輸入相關推薦
hihoCoder 1224 賽車 (dfs,鄰接連結串列存邊)
描述 幻想鄉有一個賽車場。賽車場裡有N個地點。同時地點之間還有單向的道路存在。 這些道路使得賽車場形成了一個外向樹的結構。也就是說,道路將這N個地點連成了一個有根樹。並且所有的邊都是從父親指向孩子的。 由於幽香喜歡刺激,每次她去賽車場都會從根節點出發,選擇最長的一條路徑來玩。 但是現在幽香感覺最長的路徑還
鄰接連結串列存圖及遍歷——————資料結構作業
實現 鄰接連結串列存圖 DFS遞迴遍歷 DFS非遞迴遍歷 BFS遞迴遍歷 #include<bits/stdc++.h> using namespace std; const int MAXN = 1e4; vector<int
【資料結構】圖的基本操作——圖的構造(鄰接矩陣,鄰接表),遍歷(DFS,BFS)
鄰接矩陣實現如下: /* 主題:用鄰接矩陣實現 DFS(遞迴) 與 BFS(非遞迴) 作者:Laugh 語言:C++ ******************************************* 樣例輸出如下: 請選擇圖的型別(a - 無向圖, b - 有向圖):a 請輸入總頂點
POJ 1426 Find The Multiple(DFS,BFS)
ons pro sum 數字 there lin queue hat 一個數 Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal
2018杭電多校第二場1003(DFS,歐拉回路)
歐拉路 style ear bits its space nbsp 記錄 一個隊列 #include<bits/stdc++.h>using namespace std;int n,m;int x,y;int num,cnt;int degree[100007]
洛谷P4907【CYH-01】小奔的國慶練習賽 :$A$換$B$ $problem$(DFS,剪枝)
技巧 show -h 可能 reg http 復雜度 tex \n 洛谷題目傳送門 順便提一下題意有一個地方不太清楚,就是如果輸出No還要輸出最少需要添加多少張牌才能滿足要求。蒟蒻考完以後發現四個點Too short on line 2。。。 比較需要技巧的搜索 既然是同一
設計一個演算法,將連結串列中所有結點的連結串列方向“原地”逆轉,即要求僅利用原表的儲存空間,換句話說,要求演算法的空間複雜度為O(1)。
語言:C++ #include <iostream> using namespace std; typedef struct LNode { int data; LNode *next; }LNode,*LinkList; //建立連結串列 int CreateList(Li
洛谷P1192臺階問題(單向遞迴dfs,逆向遞迴記憶化)
題目連結:https://www.luogu.org/problemnew/show/P1192 題目很有價值,用搜索寫的話,可以加深對遞迴搜尋的理解。一般這樣的遞推可以用:dp或記憶化(我就用記憶化了 記憶化一般有遞推規律(遞迴好寫就在這),適用於遞推題!數範圍略大題!一般逆向遞迴dfs
UVA-12657 Boxes in a Line (模擬,雙向連結串列(陣列實現))
第一次對陣列實現雙向連結串列的練習,理解了發現數組實現真方便… 題目:UVA-12657 題目描述: 你有n個盒子在桌子上的一條線上從左到右編號為1……n。你的任務是模擬四種操作 1 X Y 移動盒子編號X到盒子編號Y的左邊(如果X已經在Y的左邊了就忽略) 2 X Y 移
圖(圖的建立鄰接連結串列法)(圖的深度遍歷搜尋)
#include <stdio.h> #include <stdlib.h> #define MAXSIZE 100 int visited[MAXSIZE]={0}; typedef struct node { int adjvex; struct node* ne
圖,十字連結串列與鄰接多重表儲存方法
對於考研來說,這兩個圖儲存方法屬於低頻考點,但是,一旦考了可就要了親命了,以防萬一,總結如下: 十字連結串列主要用於儲存有向圖,臨界多重表主要用於儲存無向圖,首先複習臨界表畫法: 十字連結串列 結構 根據有向圖畫十字連結串列
有向圖的建立與遍歷(鄰接連結串列)
下面介紹一下,有向圖的建立與遍歷(使用鄰接連結串列法) 思路:在頂點結構體裡面,將第一條邊用指向邊的結構體的指標firstedge儲存 即struct EdgeNode * next; 1.再輸入,邊的個數,頂點的個數。 2.輸入所有節點的字母 3.最後再輸入所有的邊的字母(例如,輸入
【 C# 資料結構】(一) -------------------------- 泛型帶頭節點的單鏈表,雙向連結串列實現
在程式設計領域,資料結構與演算法向來都是提升程式設計能力的重點。而一般常見的資料結構是連結串列,棧,佇列,樹等。事實上C#也已經封裝好了這些資料結構,在標頭檔案 System.Collections.Generic 中,直接建立並呼叫其成員方法就行。不過我們學習當然要知其然,亦知其所以然。 本文實現的是連結
詳述線性表(單鏈表,雙鏈表,靜態連結串列和迴圈連結串列)
線性表:由零個或多個數據元素組成的有限序列。 關鍵點: 有限序列第一個元素有且僅有一個前驅結點,最後一個與元素有且僅有一個後繼結點,中間元素有一個前驅結點和一個後繼結點線性表
hdu 5167 Fibonacci(DFS,剪枝,斐波那契)
Fibonacci Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 2391 Accepted Sub
資料結構八:稀疏矩陣(涉及三元組,十字連結串列)
###1. 稀疏矩陣的定義 稀疏矩陣是零元素居多的矩陣,稀疏矩陣和稠密矩陣之間並沒有一個精確的界限。假設m行n列的矩陣含有t個非零元素,一般稱 δ =
josephus Problem 中級(使用陣列模擬連結串列,提升效率)
問題描述: 在《josephus Problem 初級(使用陣列)》中,我們提出了一種最簡單直接的解決方案。 但是,仔細審視程式碼之後,發現此種方案的效率並不高,具體體現在,當有人出局時,遍歷陣列仍需要對其進行判斷, 這無疑做了無用功,降低了程式碼效率,在人數多時尤其明顯。
hdu 1016 Prime Ring Problem(dfs,素數環)
Prime Ring Problem Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I
單鏈表,迴圈連結串列,雙鏈表及其基本操作(C++實現)
最近在學習嚴蔚敏教授的《資料結構》,有一些感想,在這裡寫下來,留做筆記,希望能對以後學習有所幫助。 我們知道,線性表就是n個數據元素的有限序列,它有兩種實現方式,其一為順序表,即陣列+偽指標的方式實現,另一為連結串列,採用的是指標的方式實現。由於順序表的知識
無向圖-鄰接連結串列的深度優先遍歷-DFS
一、DFS思想本演算法以無向網為例,儲存方式採用鄰接連結串列1)將該網以鄰接連結串列的方式儲存2)選取A點為起始點,訪問此頂點,用一個visit的bool型陣列記錄訪問狀態(false表示未被訪問,true表示已訪問)3)從A的未被訪問的鄰接點出發,深度優先遍歷圖,直到圖中所