原创 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