原创 POJ2240 Arbitrage(flyod解決)

題目描述 Arbitrage 有些人會利用貨幣的不用匯率來進行套現,比如1美元換0.5英鎊,而1英鎊又可以換10法郎,而1法郎又可以換0.21的美元,那麼經過貨幣的匯率轉換後,它就可以獲得1.05倍原來的美元。 現在給你N中貨

原创 最短路徑dijkstra模板

題目描述 第一行兩個整數n m。n表示頂點個數(頂點編號爲1~n),m表示邊的條數。接下來m行表示,每行有3個數x y z。表示頂點x到頂點y邊的權值爲z。求源點爲1的最短路徑。 題目來源【坐在馬桶上看算法】算法7:Dijks

原创 最短路徑 flyod模板

題目描述 n個城市間有m條單向公路,求任意兩城市間最短路徑 題目來源【坐在馬桶上看算法】算法6:只有五行的Floyd最短路算法 題目思路 Flyod用於求多源最短路徑問題(不能有負權邊) 若兩城市爲編號1和n,求最短路徑

原创 N皇后問題(回溯/全排列)

N皇后問題 在n×n格的棋盤上放置彼此不受攻擊的n個皇后。按照國際象棋的規則,皇后可以攻擊與之處在同一行或同一列或同一斜線上的棋子。n後問題等價於再n×n的棋盤上放置n個皇后,任何2個皇后不妨在同一行或同一列或同一斜線上。 DFS

原创 POJ1125 Stockbroker Grapevine(flyod解決)

題目描述 Stockbroker Grapevine 衆所周知,證券經紀業依靠的就是過度的傳言。您需要想出股票經紀人中傳播假情報的方法,讓您的僱主在股票市場的佔據優勢。爲了獲得最大的效果,你必須蔓延最快的方式謠言。 不幸的是

原创 單鏈表判斷是否迴文

將鏈表後半部分反轉,判斷與前半部分是否相同,再恢復鏈表 判斷迴文的普通方法: 分別從開頭和結尾往中間遍歷 分別從中間往開頭和結尾遍歷 利用棧,入棧再出棧進行對比 #include <iostream> using names

原创 LeetCode:Friend Circles 查並集

題目描述 547. Friend Circles 解題思路 相當於把所有學生分成幾個集合,每個集合裏都是有friendship的同學,最後計算集合的個數,所以可以利用查並集去計算。 查Find:每個集合選一個代表元素,新加入的元

原创 淺述pcd,ply,out文件格式

三維重建過程中用到的一些文件格式,在這裏做一下記錄。 PCD point cloud data, PCD並不是第一種支持3D點雲數據的文件類型。 參考自 http://pointclouds.org/documentation/t

原创 字符串轉浮點數

str轉double #include <iostream> using namespace std; double atof_my(const char* str){ double res=0.0; doubl

原创 最長迴文子串 Manacher算法

今天看到一個求最大回文子串的算法,可以達到O(N)的時間複雜度和空間複雜度,非常的神奇 先記錄一下,有時間一定要寫個詳細的博客 這篇博客寫的很明白,強推 https://articles.leetcode.com/longe

原创 單鏈表反轉

#include <iostream> using namespace std; struct Node{ int value; struct Node* next; }*LinkedList; Node *re

原创 POJ1979:Red and Black

題目描述 Red and Black 大意是隻能走周圍的4個相鄰點,只能走黑色點,不能走紅色點 輸出最多可以走多少個不同的黑色點 題目思路 DFS 往四個方向走,走過的點標記一下 碰到紅色點或者越界或者標記過的點,是DFS的

原创 字符串轉整數

實現C++中atoi函數,字符串轉整型 #include <iostream> using namespace std; int atoi_my(char* str){ static const int MAX_INT =

原创 Hdu 1863.暢通工程 Kruskal模板

題目描述 暢通工程 解題思路 給出n邊,m點,求最小消耗,可以套用最小生成樹模板來做 最小生成樹主要可以用Prim和Kruskal解決 Prim時間複雜度是O(n2),n是頂點數量,和邊數量無關,主要用於稠密圖 Kruskal

原创 POJ1321 棋盤問題

題目描述 棋盤問題 題目思路 和N皇后有點像,但是不一樣 有點像組合問題 DFS 代碼 #include<iostream> using namespace std; char chess[9][9]; int count,m