原创 貪心-會議安排問題

問題描述: 學校的小禮堂每天都會有許多活動,有時間這些活動的計劃時間會發生衝突,需要選擇出一些活動進行舉辦。小劉的工作就是安排學校小禮堂的活動,每個時間最多安排一個活動。現在小劉有一些活動計劃的時間表,他想盡可能的安排更多的活動,

原创 貪心練習題集

洛谷-紀念品分組(1094) 題目鏈接 問題分析: 根據問題描述,得出最優解應該滿足分組儘可能少。此外要求,每組至多兩件物品且價值儘量均勻,而且還不能超過規定價格。 找出問題所在,解便不難得出。倘若價值最大的和價值最小的都沒有超過

原创 拓撲排序-AOV網

簡介: 對一個有向無環圖(Directed Acyclic Graph簡稱DAG)G進行拓撲排序,是將G中所有頂點排成一個線性序列,使得圖中任意一對頂點u和v,若邊<u,v>∈E(G),則u在線性序列中出現在v之前。通常,這樣的線

原创 圖-深度優先搜索

簡介: 深度優先搜索屬於圖算法的一種,是一個針對圖和樹的遍歷算法,英文縮寫爲DFS即Depth First Search。深度優先搜索是圖論中的經典算法,利用深度優先搜索算法可以產生目標圖的相應拓撲排序表,利用拓撲排序表可以方便的

原创 插入排序-折半插入

簡介: 折半插入的本質同直接插入並沒有不同。只不過在查找合適位置的過程中,不再採用順序查找的方法,而是採用折半(二分)查找。 二分圖示: 代碼示例: #include<bits/stdc++.h> using namespace

原创 貪心-最短路徑問題

問題描述: 給定若干城市以及各城市之間的路線,求出到達每個城市的最短路徑。如下圖所示,各字母代表城市,有邊則代表城市之間連通,權值代表連通的城市之間的路徑值。 圖示: Dijkstra求解: 1. Dijkstra思路分析 主要

原创 洛谷-合併果子(P1090)

題目鏈接: 合併果子 問題分析: 根據題目描述,不禁讓我們想到了哈夫曼樹。每次從森林中選取兩棵權值較小的子樹,通過合併再放入森林(相應的兩棵子樹應從森林中刪去),直至森林中僅含有一棵樹。本題要求每次合併兩堆果子,直至合成一堆。並且

原创 洛谷-排隊接水(P1223)

題目描述: 有n個人在一個水龍頭前排隊接水,假如每個人接水的時間爲Ti,請編程找出這n個人排隊的一種順序,使得n個人的平均等待時間最小。 輸入格式 輸入文件共兩行,第一行爲n;第二行分別表示第1個人到第n個人每人的接水時間T1,T

原创 PAT-1045(乙級)

題目簡介: 著名的快速排序算法裏有一個經典的劃分過程:我們通常採用某種方法取一個元素作爲主元,通過交換,把比主元小的元素放到它的左邊,比主元大的元素放到它的右邊。 給定劃分後的 N 個互不相同的正整數的排列,請問有多少個元素可能是

原创 圖-廣度優先搜索

簡介: 廣度優先搜索算法(又稱寬度優先搜索)是最簡便的圖的搜索算法之一,這一算法也是很多重要的圖的算法的原型。Dijkstra單源最短路徑算法和Prim最小生成樹算法都採用了和寬度優先搜索類似的思想。其別名又叫BFS,屬於一種盲目

原创 Servlet-過程簡析

請求過程: 簡單描述其過程就是:當請求到達服務器上的Web容器後,容器通過查找對應的servlet響應此次請求。 詳細分析: 請求到達web容器 容器解析此次請求,並創建一個請求對象和響應對象 容器將請求信息設置給上述兩個對象

原创 洛谷-運輸(P2094)

題目鏈接: 運輸問題 問題分析: 初讀題目,可能有點搞不懂。題目要求:二當一(兩件的價格算一件),並且給出了這個價格是如何計算的。題目的關鍵點在:如此反覆。直到只收一件商品的錢。 分析到這,是否感覺有點類似哈夫曼編碼以及洛谷中的另

原创 最短路徑-Floyd

簡介: Floyd算法又稱爲插點法,是一種利用動態規劃的思想尋找給定的加權圖中多源點之間最短路徑的算法,與Dijkstra算法類似。該算法名稱以創始人之一、1978年圖靈獎獲得者、斯坦福大學計算機科學系教授羅伯特·弗洛伊德命名。

原创 PAT-1001(甲級)

題目描述: Calculate a+b and output the sum in standard format – that is, the digits must be separated into groups of th

原创 洛谷-最佳旅遊線路(P2096)

問題鏈接: 最佳旅遊線路 問題分析: 題目要求很簡單,遊客只能自左向右行走,但是可以南北隨意移動。然後給每段街道劃分數值,要求找出在這樣的情況下的最大數值。 藉助下圖進一步分析題目意思: 如上圖所示:典型的貪心問題,題目要求最終