#
论如何将100分变为0分
1.    Tarjan1.\;\;Tarjan1.Tarjan 缩无向图时套用原来的写法会建4m4m4m条边。
2.  2.\;2. 在离线时,不要把ans==0ans == 0ans==0作为比较条件。
3.  3.\;3. 不要偷懒而不写函数返回值类型。
4.  4.\;4. 记得取模。
5.  5.\;5. 在分支比较少时尽量选择if  elseif\;elseifelse语句。
6.  6.\;6. structstructstruct远比多个数组快,所以能压成structstructstruct就压。
7.  7.\;7. TarjanTarjanTarjan在求割点时stackstackstack里存的是边。
8.  8.\;8. 在SASASA中可以用sort+sort+sort+把tupletupletuple压成long  longlong\;longlonglong来代替记排,但不要忘记rankrankrank数组尾端全都是−1-1−1。
9.  9.\;9. 在遇到变量莫名其妙被修改时,绝对是越界了。你看Haskell就不会这样
10.  10.\;10. 同类型变量共享成员函数内的staticstaticstatic变量。
11.  11.\;11. 写线段树一定要区分右移左移(其实define\text{define}define起来就没这么多事了)。
12.  12.\;12. 尽量使用intintint而非long  longlong\;longlonglong,只需在乘式前使用(ll)(ll)(ll),乘式末取模即可,效率有明显提升。
13.  13.\;13. 模数千万不能错。
14.  14.\;14. IOIIOIIOI赛制记得删文操。
15.  15.\;15. 写莫队是区间应先扩展再收敛。
16.  16.\;16. (尤其是图论题)搜索时要考虑状态是否完全联通(比如TarjanTarjanTarjan)。
17.  17.\;17. IDFTIDFTIDFT最后要reverse(a+1,a+n)reverse(a+1, a+n)reverse(a+1,a+n)。
18.  18.\;18. 分治FFTFFTFFT中要使多项式相乘后的长度尽可能小(大概有一半的常数)。
19.  19.\;19. 尽量不要开大小刚刚好的数组。
20.  20.\;20. 当DP\text{DP}DP数组本身有不止一种意义时, 注意特判。
21.  21.\;21. 不要在读入多组数据使用break\text{break}break,goto\text{goto}goto等。
22.  22.\;22. -1>>1==-1\text{-1>>1==-1}-1>>1==-1。
23.  23.\;23. 求区间交时记得判断左端点是否跨越右端点。