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)最后对数组中剩下的操做数相加。

相关文章
相关标签/搜索