( ext{Update On 2020.4.8})
21.局部变量不要和全局的重复,不然两边一起用全部都成局部的值,全局就失去了作用,结果还过了样例测试。。
20.非 ( ext{void}) 函数一定要写 ( ext{return}) !!!有的是时候过了样例,坑死人啊。。
( ext{Update On 2020.4.7})
19.( ext{int}) 类型的数不要用 ( ext{long long}) 输出,即 %lld
,那样如果是负数的话直接炸掉了。
( ext{Update On 2020.4.4})
不要放弃,但也不要盲目坚持。
18.这真是一个至理啊。。“你在OJ上提交了千百遍,却依然不能卡进那时限”,此言非虚!
这里给出一些卡常方法:
-
用快读快输。
-
将循环变量前加上 ( ext{register})。
-
把 ( ext{i++}) 改成 ( ext{i=-}) ~ (i),位运算优化。
-
尽量用位运算,( ext{*2}) 写作 ( exttt{<<1}).其余同理。
-
函数名前加 ( ext{inline}),可以避免非法访问,大大加快。尤其是递归函数,很省栈空间!
-
开 ( ext{O3}) 优化,具体的有模板,记录在博客园中了。(不久也会过来了哦~)
( ext{Update On 2020.4.1})
17.我真是个天才。。链式前向星存图,add(a,b)
并不一定就是有向图,有一些代码也会悄悄地在 add
函数里给我加两条边!!! 结果导致我调试了 (1h),这天才的我都服了。。。结果我用 ( ext{vector}) 存图可以说是
一!脸!懵!逼!
( ext{Update On 2020.3.26})
16.写完正解可以把部分分的代码删掉。。(不然变量名重复,数组大小值域不同,很烦的,细节上直接 ( exttt{RE}) 了。。
( ext{Update On 2020.3.25})
15.矩阵的 (n imes m) 不要习惯的写 (n imes n)!不然直接爆 (0) 了!!!
14.双重循环不要写成 for(int j=1;j<=n;i++) ,这样子很烦的!!!
( ext{Update On 2020.3.23})
13.并查集要初始化!并查集要初始化!并查集要初始化!并查集要初始化!并查集要初始化!并查集要初始化!并查集要初始化!并查集要初始化!
( ext{Update On 2020.3.22})
12.求最大子段和的时候,( exttt{ans}) 的初值是 (max(a_1,0)) 而不是 (a_1) !因为,最大子段和可以取一个空集,此时答案为 (0);要防止所有数都是负数的情况。
( ext{Update On 2020.3.18})
11.( ext{AC}) 自动机中,最好用 结构体 + 数组 ,纯用数组不太好。。。
10.所有的数字默认 ( exttt{int}) 类型。比方说,( exttt{1 << 62}) 就会溢出炸掉,但是 ( exttt{1ll <<62}) 就完好无损。
( ext{Update On 2020.3.16})
9.注意long long取最小值,ans需要定到 (1ll << 62) .
8.freopen调试的时候可以去掉,但是提交的时候记得开起来!
7.线段树维护区间和 开long long ! 开long long ! 开long long !
( ext{Update On 2020.3.10})
6.多组数据的 初始化! (多次导致程序直接崩溃)
( ext{Update On 2020.2.28})
5.线段树的标记是累加,是+=,而不是直接=!!
4.非 void 型函数一定要记得写 return !
3.写完程序要用 freopen 测试一下大数据 或者和暴力对拍,不要过了样例(然后大数据要么 WA 要么 TLE)。
2.return 不要打成 rteurn.
( ext{Update On 2020.2.27})
1.线段树开(4)倍。线段树开(4)倍。线段树开(4)倍。线段树开(4)倍。线段树开(4)倍。线段树开(4)倍。线段树开(4)倍。线段树开(4)倍。线段树开(4)倍。线段树开(4)倍。线段树开(4)倍。线段树开(4)倍。线段树开(4)倍。