原创 Latex 數學符號 WinEdt

1. 空集 \emptyset  or \varnothing 2. 交集 \cap  or \bigcap 3. 求和 \sum_{i=1}^{n} i  4. 無窮:\infty 如果使用WinEdt的話,在編輯窗口選擇View ->

原创 win7 臺式機 音量圖標 紅叉 解決辦法

安裝驅動精靈,檢測電腦,更新驅動即可。

原创 在實現組合數計算的時候要防止溢出

1. 在計算組合數C(N, M)的時候如果利用公式n!/(m!*(n-m)!)的話,很可能會溢出。     因爲對於階乘,13!已經超過了int能表示的範圍,而且也會很快超過long long的表示範圍。 2. 如果按照定義先計算分子,

原创 C++和Java運算符優先級表

1. C++ operator precedence Precedence Operator Description Associativity 1 :: Scope resolution Left-to-right 2

原创 染色問題(n個格子,3種顏色)

有排成一行的n個方格,用紅(Red)、粉(Pink)、綠(Green)三色塗每個格子,每格塗一色,要求任何相鄰的方格不能同色,且首尾兩格也不同色.求全部的滿足要求的塗法. 遞推公式: A1 = 3 A2 = 6 //A(3,2)=6 A

原创 C++ 字符串分割 (HDUOJ 2072)

1. C++ 的boost庫裏有直接的分割函數split,可以將字符串按照指定的分割規則分割成字符串數組,類似Java。     具體使用參考:http://stackoverflow.com/questions/5734304/c-bo

原创 C++ 數據類型的表示範圍

For 32-bit and 64-bit compilers, Microsoft Visual C++ recognizes the types shown in the table below. Note that the fol

原创 快速排序源代碼

#include <iostream> using namespace std; int quickSort(int *array,int x,int y) { int low=x,high=y; int key=array[x

原创 C++ 進制轉換(HDUOJ 2031)

進制轉換都採用輾轉相除法,相關例子見HDUOJ 2031,代碼如下: #include <iostream> #include <iomanip> #include <cmath> #define PI 3.1415927 using

原创 HDUOJ 2067題

這題的結果是卡塔蘭數的2倍,因爲有2種可能,只從對角線下方走和只從對角線上方走。 2*catlan(n)即爲結果,其中catlan(n)= 不過如果直接利用此公式編寫代碼的話,需要注意組合數在計算過程中的溢出。 此題不建議直接用公式來

原创 常用數列的範圍問題

1. fibnacci數列 f(0)=0 f(1)=1 f(n)=f(n-1)+f(n-2), n>=2 f(46)=1836311903  f(47)=2971215073 可以發現f(47)已經超過了int能表示的範圍,要留心。 r

原创 關於遞歸超時問題的實例分析

很多時候遞歸是很直觀的解決問題的方式,但往往遞歸的分支較多或層數較深的時候會導致程序運行超時或遞歸棧爆炸。 以HDUOJ 2041題爲例,實際上該題就是fibnacci數列求解,但如果我們寫成 int fib(int n) {

原创 ACM和程序員訓練指南

1. 先刷簡單的題目,掌握最基本和最常見的算法。     這一階段可以考慮杭電HDUOJ 2000-2300題。 2. 開始有針對性訓練算法     主要是刷搜索,動態規劃,貪心,分治的題目,不斷訓練,理解,總結。     這個階段可以考

原创 HDUOJ 2086推導

已知A1=(A0+A2)/2 - C1, A2=(A1+A3)/2 - C2 , ... =>A1+A2 = (A0+A2+A1+A3)/2 - (C1+C2) =>A1+A2 = A0+A3 - 2(C1+C2) 類似的有:

原创 錯排計數

考慮一個有n個元素的排列,若一個排列中所有的元素都不在自己原來的位置上,那麼這樣的排列就稱爲原排列的一個錯排。 n個元素的錯排數記爲Dn 遞推公式如下: D1=0,D2=1 Dn=(n-1)(Dn-1+Dn-2) 具體證明見:http