这里会记录一些训练时的纰漏和一些小Tips,以免以后再发生。
1、做思维题思维一定不要定向,正着想行不通就要尝试逆着想。可能很简单的题目因为没有逆着想导致浪费了很多时间。具体题目:。
2、今天做题的时候试了一下快速乘,结果快速乘比普通乘在1e6的数据中慢了差不多十几倍。快速乘和普通乘的时间差距在于:快速乘一般有多次加减法和取模运算,而普通乘法为一次乘一次取模一次。使用快速乘并不是为了加快乘法速度,而是防止爆精度,因为其可以边乘边模。由lw师兄:取模是一个最费时间的运算,比如说 1、a = (a + b) % MOD; 2、a = a + b; if (a >= MOD) a -= MOD; 这样的第二种的运行速度会比第一种快,因此有时候遇到一些取模运算多而卡时的话,可以这样优化速度。
3、有时候看起来是直接用公式算的题目,如果计算很麻烦,不妨先通过计算优化时间复杂度,然后剩下的麻烦部分用模拟解决。具体题目:。
4、真是太粗心了啊。不过这个好像也不知道怎么解决。具体题目:
5、双哈希两个质数:19260817 和 1e9+7.
6、数组下标看错了。要炸。
7、DFS的时候如果要修改当前的全局变量,要仔细想下修改量,回的时候溯要按照原来一样复原回来。
8、网络流的题目边的数目一定要算清楚,免得RE!!!
9、离散化要看清楚边界条件!