HDOJ日記1

(2015/9/21)算法

HDOJ 1231 最大連續子序列數組

    求最大連續子序列,並輸出子序列首位元素。
函數

2015/9/22url

HDOJ 3743 Frosh Weekspa

    歸併排序求逆序對數3d

HDOJ 4911 tInversioncode

    逆序數的性質:若是一個序列的逆序數大於0,則一定存在兩個相鄰的數,交換後逆序數減1。
orm

    例如序列1 2 3 4 5,若要插入一個數使逆序數大於0,不管插入那裏都存在這樣相鄰的數。
排序

(2015/9/23)隊列

HDOJ 1009 FatMouse' Trade

揹包問題,貪心算法

(2015/10/13)

HDOJ 2501 Tiling_easy version:網格長度n每加1,對新增長的2 * 1網格的方法進行分類,便可推導出公式F(n);

HDOJ 2502 月之數:也是要推導出公式F(n)。二進制數的位數每增長1位,增長的最高位必須是1,而後從左往右依次討論每一位是1或0的狀況。

                                 F(n) = F(n - 1) + F(n - 2) + 。。。 + F(1) + 2 ^(n - 1);

                                2 ^(n - 1)表示最高位的1有幾個。

HDOJ 2503 a/b + c/d:求最大公約數,展轉相除法的代碼:

int gcd(int a, int b)
{
	if (b == 0) return a;
	else return gcd(b, a % b);
}

HDOJ 2504 又見GCD:以c必定是b的倍數,對c進行枚舉。

(2015/10/14)

HDOJ 1228 A + B:C++關聯容器map的使用。

HDOJ 1232 暢通工程:實現並查集。此題中有幾個連通份量,就還要再修n - 1條路。

並查集參考:

http://wenku.baidu.com/link?url=7OMc83QJhlT5lEY7Bc0RiUO5x4MzNY45TcckKZdQZ5F5UmFwQWFVO_nE3dVszPJqUTDgecWFBTsDelkX6kNz9ncg4qDgwbsUPcf6TEoYZ9e

HDOJ 1236 排名:

    1)C++,使用結構體做爲優先隊列的元素。

    2)scanf_s讀入字符串時,須要指定最大讀入長度。

    3)字符數組的比較使用strcmp函數。

(2015/10/17)

HDOJ 1230 火星A+B:先讀出火星數中的每一位,存放在數組中。反轉數組。從個位開始算。反向輸出結果數組。

(2015/10/18)

HDOJ 1237 簡單ji算器:(ji算只含 +, -, *, / 的非負整數表達式)

    1)用數組保存操做數。

    2)若讀到*,/則進行一次運算。

    3)若讀到+,則直接將操做數存入數組。

    4)若讀到-,則對操做數取負後存入數組。

    5)最後對數組中剩下的操做數相加。

相關文章
相關標籤/搜索