Wa的技巧展示 (非技术原因)
-
思考不够多元化 (DP/网络流之争),很多题可以尝试着倒着想。
-
数学思维,画图,每种问题可能多种对应的解法,可以相互转换,比如乘法可以取对数,变为加法
-
看错了输入的顺序
-
常识性的错误,扑克牌中A代表的不是1,而是14
-
线段树+二分之类的操作可以写成树上二分
-
看到了奇怪的数据范围要有敏感性:例如30~42可以折半,12可以尝试n的三次方枚举
-
空间开小了
a) 结果TLE 或者 RE
b) 字典树 O(N∗len)O(N*len)O(N∗len)
c) 主席树 O(40∗N)O(40*N)O(40∗N)
d) 线段树 O(N∗4)O(N*4)O(N∗4)
e) 用链式前向星为边权两倍 O(M∗2)O(M*2)O(M∗2)
f ) 题目需要多个数组,不同数组所需要的空间不同 -
爆 long long
a) 取模过大 (MOD>3∗109MOD > 3*10^9MOD>3∗109)
b) 计算过程中出现乘法的地方 -
爆 double 在运算过程中,如果直接与 1018+710^{18}+71018+7 比对的话,后面的 +7+7+7会忽略不计
-
建边的过程中,双向边建为了但单向边
-
TLE
在不需要 __int128的地方,加上了 __int128,使得时间花费*2 -
弗洛伊德算法中,枚举的顺序必须是 k,i,j
int long long __int128 时间测试
//int
1e8 10ms
1e9 62ms
1e10 694ms
//long long
1e8 16ms
1e9 124ms
1e10 1523ms
//__int128
1e8 20ms
1e9 166ms
1e10 2065ms