1. 程式人生 > >大臣的旅費 兩遍dfs求樹的直徑

大臣的旅費 兩遍dfs求樹的直徑

很久以前,T王國空前繁榮。為了更好地管理國家,王國修建了大量的快速路,用於連線首都和王國內的各大城市。

為節省經費,T國的大臣們經過思考,制定了一套優秀的修建方案,使得任何一個大城市都能從首都直接或者通過其他大城市間接到達。同時,如果不重複經過大城市,從首都到達每個大城市的方案都是唯一的。

J是T國重要大臣,他巡查於各大城市之間,體察民情。所以,從一個城市馬不停蹄地到另一個城市成了J最常做的事情。他有一個錢袋,用於存放往來城市間的路費。

聰明的J發現,如果不在某個城市停下來修整,在連續行進過程中,他所花的路費與他已走過的距離有關,在走第x千米到第x+1千米這一千米中(x是整數),他花費的路費是x+10這麼多。也就是說走1千米花費11,走2千米要花費23。

J大臣想知道:他從某一個城市出發,中間不休息,到達另一個城市,所有可能花費的路費中最多是多少呢?

相關推薦

大臣旅費 dfs直徑

很久以前,T王國空前繁榮。為了更好地管理國家,王國修建了大量的快速路,用於連線首都和王國內的各大城市。 為節省經費,T國的大臣們經過思考,制定了一套優秀的修建方案,使得任何一個大城市都能從首都直接或者通過其他大城市間接到達。同時,如果不重複經過大城市,從首都到達每個大城市的方案都是唯一的。 J是T國重

樹形dp直徑dfs直徑

樹形dp求樹直徑: #include <cstdio> #include <cmath> #include <cstring> #include <cstdlib> #include <iostream> #include<a

大臣旅費 次深搜求直徑

很久以前,T王國空前繁榮。為了更好地管理國家,王國修建了大量的快速路,用於連線首都和王國內的各大城市。 為節省經費,T國的大臣們經過思考,制定了一套優秀的修建方案,使得任何一個大城市都能從首都直接或者通過其他大城市間接到達。同時,如果不重複經過大城市,從首都到達每個大城市的方案都是唯一的。 J是T國

2017.10.12. DFS直徑

DFS求樹的直徑 適用題型: 1.求樹的直徑 2.求數的最長璉 樣題: Cow Marathon【樹的直徑模板】 題目背景 POJ1985 題目描述 After hearing abo

次BFS直徑(演算法導論22.2-7)

以任意點w開始,先做一次BFS,找到最遠的點v,然後再以此點v進行一次BFS,找到最遠的點為u,u到v就是樹的直徑。 此問題的關鍵不是在程式設計,而是要證明,網上也找了很多資料,沒有看到證明,以下是個人的證明方法。 首先要知道樹是沒有環路的連通圖,任意兩點都有一條通路,

POJ 1985 Cow Marathon(次BFS直徑(最長路))

Cow Marathon Time Limit: 2000MS Memory Limit: 30000K Total Submissions: 0 Accepted: 0 Case Time Limit: 1000MS Description After h

層次

#include <stdio.h> #include <stdlib.h> #define MaxSize 50 typedef struct BiTNode{ char data; struct BiTNode *lchild,*rchild; }Bi

sdut oj2804 二叉的深度(根據中序以及後序

求二叉樹的深度 Time Limit: 1000MS Memory limit: 65536K 題目描述 已知一顆二叉樹的中序遍歷序列和後序遍歷序列,求二叉樹的深度。 輸入 輸入資料有多組,輸入T,代表有T組資料。每組資料包括兩個長度小於50的字串,第

直徑+並查集(bfs,dfs都可以)hdu4514

題目連結:http://acm.hdu.edu.cn/showproblem.php?pid=4514 這題主要是叫我們求出樹的直徑,在求樹的直徑之前要先判斷一下有沒有環 樹的直徑指的就是一棵樹上面距離最遠的兩點的距離,有時也可以指最遠的兩點之間的路徑。 至於樹的直徑怎麼求,我們首先要知道一個結論,樹上

二叉-已知第三種

1,先序和中序,輸出後序 #include<iostream> #include<stack> using namespace std; const int N=1010; int n,pre[N],in[N]; //先序陣列和後序陣列 stack<int>

藍橋杯 PREV-9 大臣旅費DFS

題意:求樹中最遠的兩個點的距離。 解題方案:第一遍dfs,任取一個點,找到離它最遠的點a,第二遍dfs,以a為起點,找到離a最遠的點b,ab即為樹中最遠的兩個點。證明:樹的直徑(最長路)的詳細證明。

根據的前序歷、中序歷、後序歷中的第三種歷結果

學過資料結構,都知道二叉樹有四種遍歷手段,前序遍歷、中序遍歷、後序遍歷以及層序遍歷,而前三種遍歷存在較強的關聯,即:知道中序遍歷及另外兩種遍歷中的一種時,可以求第三種,簡單的講就是根據中序遍歷和前序遍歷、後序遍歷中的一種,可以求第三種。 是不是有些繞了,自己慢慢

藍橋杯之大臣旅費dfs

之間 NPU fin ble 過大 編號 http sample 題目 Description 很久以前,T王國空前繁榮。為了更好地管理國家,王國修建了大量的快速路,用於連接首都和王國內的各大城市。 為節省經費,T國的大臣們經過思考,制定了一套優秀的修建方案,使得任

hdu4612 無向圖中隨意加入一條邊後使橋的數量最少 / 無向圖縮點+直徑

child iostream tracking amp min esp _id 矛盾 cstring 題意如上,含有重邊(重邊的話,倆個點就能夠構成了邊雙連通)。 先縮點成樹,在求數的直徑,最遠的連起來,剩下邊(橋)的自然最少。這裏學習了樹的直徑求法:第一次選隨意

poj2631 ?Roads in the North(直徑

cst num ted style positive con inpu eache memset Roads in the North Time Limit: 1000MS Memory Limit: 65536K Total Su

JavaScript 算法應用: 歷DOM種方式

pan 方式 In alt script mil 深度優先 info 算法 1 常見的DOM樹結構: 2 DOM數遍歷有兩種方式: 3 廣度優先代碼: 4 深度優先遍歷代碼 JavaScript 算法應用: 遍歷DOM樹的兩種方式

BZOJ3991:尋寶遊戲 (LCA+dfs序+並)

clu tin max pri () times class oid bsp #include<bits/stdc++.h> #define ll long long using namespace std; const int maxn=

個二叉的最低公共祖先節點

tla urn span boolean false get ren last etl TreeNode getLastCommonParent(TreeNode root,TreeNode t1,TreeNode t2){ if(findNode(roo

直徑

一次 color div class != ret code 長度 bsp 兩遍bfs即可 分析:一開始任取一個點u進行搜索查找出距離點u最遠距離的點v和長度 第二次dfs則從第一次中的v找出距離點v最遠距離的點的路徑長度 void bfs(int u) {

CS academy Growing Trees【模板】DP直徑

algorithm wing trees 一次 gis getc 範圍 aca sig 【題意概述】   給出一棵樹,樹上的邊有兩個值a和b,你可以在[0,limit]範圍內選擇一個整數delta,樹上的邊的權值為a+b*delta,現在問當delta為多少的時候樹的直徑