——常用技巧——
程序设计竞赛常用技巧
Alex_McAvoy
想要成为渔夫的猎手
展开
-
常用技巧 —— 位运算
【概述】 在计算机中,数据都是以二进制形式存储的,因此位运算实质就是对整数在内存中的二进制位直接进行操作。 灵活使用位运算,不仅能有效的提高程序的效率,而且还能为代码提供亮点。 此外,在程序设计竞赛中,位运算,也是一种常考的要点,例如:树状数组中的 lowbit 函数的使用等,在 STL 容器中,bitset 也是一种常用的位运算工具。 关于 bitset:点击这里 【应用】 位运算基...原创 2020-02-04 18:35:01 · 595 阅读 · 0 评论 -
常用技巧 —— 打表&规律
【概述】 找规律是一种常见的题型,当给出相关数据后,我们往往可以利用打表的方法,得到大量的数据,然后再寻找规律。 简单来说,打表就是需要对某个范围内的数据进行判断,判断它是否符合某种条件,然后在接下来的很多次数据中,可能会反复使用到这些判断的结果,为了减少重复计算,可以事先将某个范围的数据的判断结果全都计算并保存起来,当需要再使用到的时候,直接使用即可。 打表实际上是一种思维方法,被广泛的应...原创 2019-08-07 11:31:10 · 1646 阅读 · 0 评论 -
常用技巧 —— 桶排
【概述】 桶排的思想是一种比较重要的技巧,在 由于桶排的特殊性,桶排仍需进行模拟装桶的过程,而且有时由于数据范围无法开很大的数组,需要使用 map 与其结合 关于桶排:点击这里 【例题】 Romaji(CF-1008A):点击这里 明明的随机数(洛谷-P1059):点击这里 同题:明明的随机数(信息学奥赛一本通-T1184):点击这里 统计字符数(信息学奥赛一本通-T1187):点...原创 2019-08-07 15:48:29 · 480 阅读 · 0 评论 -
常用技巧 —— 离散化
【概述】 离散化是数据结构中的一个常用技巧,其可以有效的降低时空复杂度,其基本思想就是在众多可能的情况中,只去考虑需要用到的值,通过离散化,可以改进低效的算法,甚至实现根本不可能实现的算法。 对于一些数量较少,但数值较大或者可能出现负数这种难以处理的数据,自身无法作为数组的下标保存对应的属性,如果这时只是需要这些数据的相对属性, 那么可以对其进行重新赋值,即进行离散化处理。 简单来说,对于 ...原创 2019-03-06 01:55:21 · 1793 阅读 · 0 评论