原创 POJ 1007 DNA 排序

Time Limit: 1000MS Memory Limit: 10000K 描述 對於一個序列中,”無序度”的度量,可以是次序顛倒的條目對的數量。例如,在字母序列”DAABEC”中,無序數爲5,因爲D比他右邊的四個字

原创 二叉樹的四種遍歷方式:遞歸、非遞歸+棧、Morris(後序非遞歸還有一種單棧和雙棧的不同版本)

本文參考: 參考文章1 參考文章2 代碼中加入了一些自己的理解 /* 二叉樹的四種遍歷方式 */ #include <iostream> #include <stack> using namespace std; // 二

原创 POJ 1006 生物週期

描述: 限制:1s 10M 人有三種週期,分別是身體,情緒和智力,週期分別是23,28,33天。 每個週期中有一個峯值,在峯值時,在對應領域表現最佳(身體,情緒或智力)。 因爲三個週期不同,所以峯值發生在不同時間,需要知道對於一個

原创 POJ 1008 瑪雅日曆

Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 72250 Accepted: 22225 描述 瑪雅文明使用365天的年曆,稱爲Ha

原创 【自用】線段樹 區間最小值

參考 http://www.cnblogs.com/TenosDoIt/p/3453089.html 概述 是一種平衡二叉樹,在每個節點保存一條線段(一個數組區間),主要用於高效解決連續區間的動態查詢,基本能保持每個操作的複雜度爲

原创 KNN算法

K nearest neighbours - K最近鄰分類法 轉載自該博客 K最近鄰密度估計是一種分類方法,不是聚類方法 規則: 1、計算待分類數據和不同類中每一個數據的距離(歐式或馬氏) (1)歐式距離爲在m維空間中兩

原创 KNN 學習筆記

先看這篇 歐氏距離 其中歐式距離,也就是平常意義上的距離,爲m維空間中兩座標的真實距離: 二維空間中(x1,y1),(x2,y2) 之間的距離: distance=(x1−x2)2+(y1−y2)2−−−−−−−−−−−−−−−−

原创 POJ 1753

描述 4*4的方格棋盤,每個棋子有白麪和黑麪,每個方格中的棋子爲白/黑,每輪翻3~5個棋子改變它們的顏色,每輪根據以下規則選擇翻面的棋子: 1. 選擇16個棋子中的任一個 2. 翻轉已選棋子的鄰近棋子(左、右、上、下,四個鄰近

原创 POJ 3468 線段樹

描述 N個整數,A1,A2,⋯,AN . 需要處理兩種操作: 一種操作是在給定的區間,給區間內的每個數加上某個數。 另一種是在給定的區間求區間內的數的和。 輸入 第一行是兩個數,N,Q,1≤N,Q≤100000 . 第二行是

原创 練習程序:算法系列1:Google方程式

描述、思路 參考1:算法系列之一 :Google方程式 補充知識 參考2:C語言條件編譯及編譯預處理階段 參考3:C++技巧之斷言Assert 實現 使用條件編譯,解決不同問題時選擇性註釋一下條件編譯#define ISGOOG

原创 POJ 1050

描述 給定一個二維數組,包含正整數、負整數,一個子矩陣是在該數組中,任何鄰近的1*1或更大的子數組。矩陣的和是矩形中所有元素的和。在該問題中,有最大和的子矩陣稱爲最大子矩陣。 例如,給定二維數組: ⎡⎣⎢⎢⎢09−4−1−22

原创 【自用】最近常用的Markdown公式

定位方程 ⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪(x−x1)2+(y−y1)2+(z−z1)=d1(x−x2)2+(y−y2)2+(z−z2)=d2⋮(x−xm)2+(y−ym)2+(z−zm)=dm 化簡的線性方程 (2x2−2x1)x

原创 POJ 1005

描述 Fred Mapper 考慮在路易斯安那州買地蓋房子。在考察期間,他知道了路易斯安那州實際上由於密西西比河的侵蝕會每年以每年50平方英里的速度減少。因爲Fred希望在新房子裏度過餘生,他需要知道他的地是否會因爲侵蝕而受損。

原创 POJ 2909 哥德巴赫猜想

1. 描述 對於任意n≥4 的整數,存在素數p1,p2使得n=p1+p2 ,給定n,找出所有符合條件的素數對的個數,注意:(p1,p2)和(p2,p1) 看作同一對。 1.1 輸入 每一行是一個偶數,0作爲輸出結束標誌 1.2 輸

原创 POJ 1207 3n+1問題

描述 考慮下列算法: 1. input n 2. print n 3. if n = 1 then STOP 4. if n is odd then n <- 3n+1 5. else n <- n/2