原创 快排求第i小元素

求n個不同元素集合中第i小的元素CODE: bool flg = true; void Solve13(int a[], int low, int high,int k) { int tmp = a[low]; int i = low

原创 POJ1852 Ants (螞蟻落杆)

Description An army of ants walk on a horizontal pole of length l cm, each with a constant speed of 1 cm/s. When a

原创 細說圖像配準

Image registration 是指同一目標的兩幅或者兩幅以上的圖像在空間位置的對準。圖像配準技術的過程,稱爲圖像匹配或者圖像相關(image matching or image correlation)。 半自動配準:人

原创 Java NIO工作機制

  不管是磁盤IO還是網絡IO,數據在寫入OutputStream或者從InputStream讀取時都有可能會阻塞,線程將會失去CPU的使用權,這在當前大規模訪問量和有性能要求的情況下是不能被接受的。雖然當前的網絡IO有一些解決辦

原创 利用CPU時鐘生成僞隨機數

利用CPU時鐘來作爲隨機數生成器的種子。 time的值每時每刻都不同。所以種子不同,產生的隨機數也不同。 srand( (unsigned)time(NULL));srand()函數產生一個以當前時間開始的隨機種子,該句代碼執行時間較長

原创 最短路徑/廣度優先

計算距離頂點v的最短路徑長度爲K的所有頂點,假設圖爲G。 思路:Dijkstra超時了,其實沒有必要求出所有的最短路徑。 CODE: #include<queue> void shortPath(int v, int k, int

原创 光線投影算法

光線投射算法是體繪製中的經典算法,由於其繪製出的圖像質量最高,因而被廣泛研究與應用。在介紹光線投影算法之前先介紹一下一些相關的專業術語。 體繪製:基於體素的數據繪製或可視化 體數據(voxels) 體繪製基本思想:觀察者應該能

原创 volatile的作用

C語言關鍵字volatile表明某個變量的值可能隨時被外部改變(如外設端口寄存器值),因此對這些變量的存取不能緩存到寄存器,每次使用時需要重新讀取,因此經常用於外設接口的編程中。該關鍵字在多線程環境下經常使用,因爲在編寫多線程的程

原创 POJ 2386 Lake Counting(水坑計數)

Due to recent rains, water has pooled in various places in Farmer John’s field, which is represented by a rectangle

原创 二分圖

給定一個具有n個頂點的圖,要給圖上每個頂點染色,並且要使相鄰的頂點顏色不同,問是否能最多用2種顏色進行染色? 思路: 選擇任意一個頂點出發,依次確定相鄰頂點的顏色,就可以判斷是否可以被2種顏色染色了。深度優先搜索。 int color

原创 最大流問題-Ford-Fulkerson算法 C++極簡實現

網上的版本大都是java實現的,如最出名的圖的匹配問題與最大流問題(三)——最大流問題Ford-Fulkerson方法Java實本文提供一種極簡化的C++實現。關於最大流問題的知識請移步最大流問題-Ford-Fulkerson算法 或者F

原创 部分和問題

給定整數數組,數組內有N個整數,判斷是否可以從中取出若干數,使它們的和恰好爲K 思路:搜索 int book[1000], em[1000]; bool flag = true; void dfs(int step, int n,

原创 數的全排列

例如有5個數字組成的數列,輸出其所有不重複的組合。 int a[10] = { 0 }; int t[5] = { 11, 12, 13, 14, 15 }; int usedx[100] = { 0 }; void dfsFun(int

原创 std::sort的妙用(1)

有時候需要按照結構體中某項數值進行排序,而結構體中的其他數值則不能改變。例如,按照成績的高低對學生進行排序,而學生這一結構體中包含了學號,姓名等其他信息。使用std::sort就很方便 CODE struct edge{ int fro

原创 字符串轉換爲二進制

給定輸入字符串,將其整體轉換爲二進制 #include<math.h> #include<stdio.h> #include<stdlib.h> #include<string.h> #include<assert.h> #inc