一、两个数组来实现查找动态集合的最小值。
二、first[]、nest[]将一个数组分成多个不同的路径。(有向图邻接表)
三、使用分治法的时候尽量使用 [ ) 结构,即:前闭后开区间。
四、连续序列和的快速运算
另加一个数组(A[n]表示前n个数之和),实现。如sum(m,n)=A[n]-A[m-1]
五、当数组下标涉及到负数的时候
#define F(i, j) (f[(i) + 1][(j) + 1])//用宏处理支持负数下标
例如:F(0, 0) = F(-1, 0) + F(0, -1);
六、在qsort()排序中,通过向自定义类型中增加数据,再在cmp中定义排序规则来达到特殊排序效果。
例如:有待补充
七、尽可能少使用scanf("%c", &c);结构,
因为输入字符的时候无法进行空格判断,所以会带来很多不必要麻烦。
例如:输入:Q 11 22,定义char c[10];int a, b;然后使用scanf("%c%d%d", c, &a, &b);
还有在处理搜索问题时候,尽量使用scanf("%s", map[i]);
八、使用0下标存储数组长度
九、在类中定义操作符有时候需要函数后面加上const
十、如果给你一个矩阵N*M < 10000,则需要将二维矩阵转换为一维
常识性知识点:
一、局部变量不能定义太大
二、不能对形式参数的数组进行sizeof()操作
二、first[]、nest[]将一个数组分成多个不同的路径。(有向图邻接表)
三、使用分治法的时候尽量使用 [ ) 结构,即:前闭后开区间。
四、连续序列和的快速运算
另加一个数组(A[n]表示前n个数之和),实现。如sum(m,n)=A[n]-A[m-1]
五、当数组下标涉及到负数的时候
#define F(i, j) (f[(i) + 1][(j) + 1])//用宏处理支持负数下标
例如:F(0, 0) = F(-1, 0) + F(0, -1);
六、在qsort()排序中,通过向自定义类型中增加数据,再在cmp中定义排序规则来达到特殊排序效果。
例如:有待补充
七、尽可能少使用scanf("%c", &c);结构,
因为输入字符的时候无法进行空格判断,所以会带来很多不必要麻烦。
例如:输入:Q 11 22,定义char c[10];int a, b;然后使用scanf("%c%d%d", c, &a, &b);
还有在处理搜索问题时候,尽量使用scanf("%s", map[i]);
八、使用0下标存储数组长度
九、在类中定义操作符有时候需要函数后面加上const
十、如果给你一个矩阵N*M < 10000,则需要将二维矩阵转换为一维
常识性知识点:
一、局部变量不能定义太大
二、不能对形式参数的数组进行sizeof()操作