原创 Dijkstra(堆優化)

Dijkstra 算法 (模板)【堆優化】 傳送門: Dijkstra:建議先掌握原始版本 基本思路:用一個優先隊列,priority queue來保存點到點之間的距離,優先隊列自動把隊列裏的數據排序(這裏需要手動寫一個bool型函數來定

原创 Dijkstra

Dijkstra 算法 (模板) 圖論中基本的最短路徑算法之一 傳送門: Floyd算法:就是這裏哈哈哈 基本思想:其實我覺得基本思路和Floyd差不多,利用鬆弛操作 比如:a--->b,從a到b,在沒有其他路的情況下直接走當然最短,所以

原创 洛谷【P1346】電車

先貼上鍊接:點擊打開 題目描述 在一個神奇的小鎮上有着一個特別的電車網絡,它由一些路口和軌道組成,每個路口都連接着若干個軌道,每個軌道都通向一個路口(不排除有的觀光軌道轉一圈後返回路口的可能)。在每個路口,都有一個開關決定着出去的軌道

原创 堆 (heap)解題報告

堆 (heap)Description給你一棵有n層的滿二叉樹,要求父親的權值大於等於兒子的權值,並且左子樹的任意一個結點的權值都小於等於右子樹任意一個節點的權值。但是這棵二叉樹可能不滿足這個條件,現在你需要對若干結點的權值進行調整使得它

原创 動態規劃練習題(2)踩方格

總時間限制: 1000ms 內存限制: 65536kB 描述 有一個方格矩陣,矩陣邊界在無窮遠處。我們做如下假設: a. 每走一步時,只能從當前方格移動一格,走到某個相鄰的方格上; b. 走過的格子立即塌陷無法再走第二次; c. 只能向北

原创 動態規劃練習題(9)導彈攔截(Noip 1999)

題目描述某國爲了防禦敵國的導彈襲擊,發展出一種導彈攔截系統。但是這種導彈攔截系統有一個缺陷:雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於前一發的高度。某天,雷達捕捉到敵國的導彈來襲。由於該系統還在試用階段,所以只有一

原创 拓撲排序(模板)

這篇文章主要是提供模板…………基本思路很簡單,看看下面的幾個步驟就會了……(1)從網中選擇一個入度爲零的頂點輸出;(2)刪除該頂點及其於該點有關的所有邊;(3)是否還有入度爲零的頂點?若有,執行(1),否則結束。算法實現:(已使用STL)

原创 動態規劃練習題(8)大盜阿福

總時間限制: 1000ms內存限制: 65536kB描述阿福是一名經驗豐富的大盜。趁着月黑風高,阿福打算今晚洗劫一條街上的店鋪。這條街上一共有 N 家店鋪,每家店中都有一些現金。阿福事先調查得知,只有當他同時洗劫了兩家相鄰的店鋪時,街上的

原创 搜索練習題(1)八皇后

題目描述 檢查一個如下的6 x 6的跳棋棋盤,有六個棋子被放置在棋盤上,使得每行、每列有且只有一個,每條對角線(包括兩條主對角線的所有平行線)上至多有一個棋子。 上面的佈局可以用序列2 4 6 1 3 5來描述,第i個數字表示在第i行的

原创 gcd,lcm

gcd(共產黨),數論基礎之一,即兩個數的最大公因數(gcd)以及lcm,即兩個數的最小公倍數; 傳送門: 快速冪,大整數取模: 前者方法是輾轉相除法,原理自行百度,手動模擬一次即懂 至於後者………………………… 上代碼: #includ

原创 動態規劃練習題(5)摘花生

一本通的同學???【題目描述】Hello Kitty想摘點花生送給她喜歡的米老鼠。她來到一片有網格狀道路的矩形花生地(如下圖),從西北角進去,東南角出來。地裏每個道路的交叉點上都有種着一株花生苗,上面有若干顆花生,經過一株花生苗就能摘走該

原创 動態規劃練習題(7)怪盜基德的滑翔翼

【題目描述】怪盜基德是一個充滿傳奇色彩的怪盜,專門以珠寶爲目標的超級盜竊犯。而他最爲突出的地方,就是他每次都能逃脫中村警部的重重圍堵,而這也很大程度上是多虧了他隨身攜帶的便於操作的滑翔翼。有一天,怪盜基德像往常一樣偷走了一顆珍貴的鑽石,不

原创 搜索練習題(2)全排列

題目描述 輸出自然數1到n所有不重複的排列,即n的全排列,要求所產生的任一數字序列中不允許出現重複的數字。 輸入輸出格式 輸入格式:   n(1≤n≤9)   輸出格式:   由1~n組成的所有不重複的數字序列,每行一個序列。每個數字保留

原创 動態規劃練習題(6)登山

【題目描述】五一到了,ACM隊組織大家去登山觀光,隊員們發現山上一個有N個景點,並且決定按照順序來瀏覽這些景點,即每次所瀏覽景點的編號都要大於前一個瀏覽景點的編號。同時隊員們還有另一個登山習慣,就是不連續瀏覽海拔相同的兩個景點,並且一旦開

原创 動態規劃練習題(4)三角形最佳路徑問題

【題目描述】如下所示的由正整數數字構成的三角形:73 88 1 02 7 4 44 5 2 6 5從三角形的頂部到底部有很多條不同的路徑。對於每條路徑,把路徑上面的數加起來可以得到一個和,和最大的路徑稱爲最佳路徑。你的任務就是求出最佳路徑