trick
瞎逼逼一些自以为的trick:
1.(ll) a*b t ll(a*b)f
2.不需要开ll的就不要开ll
3.lower_bound():<=! upper_bound(<)!
4.对拍.txt改.bat,然后在cmd运行
@echo off
:loop
data.exe //生成数据
right.exe //要对拍的
brute_force.exe //暴力
fc data1.out data2.out //两个程序的输出文件
if not errorlevel 1 goto loop
pause
goto loop
5.除法比乘法慢很多,如果可以预处理不妨预处理倒数,这样每次就可以用乘法了
6.卡常
https://blog.csdn.net/qq_33583069/article/details/53086992
7.dp的优化
状态的定义很重要。滚动数组是个好东西。
8.状态清晰后注意下标。。。。。(卡了一周)
9.int -2147483648~2147483647 2e9
long long 9223372036854775807 9e18
10.cin是读到空格就停,getline是读到换行,getchar是EOF
11.低位与高位运算有一个性质,当int与其它类型运算时,没有强制转换的情况下,会转换成int。
12.a==b==c f a==c&&b==c t
13.匹配两串字符串算长度时,for j,k;不可以并加,因为可能会多出一个;
14.可以用unique来离散化。就是int len = unique(num+1,num+1+n)-num-1;然后再二分什么的。
15.用除法表示数学关系时,转换为乘法。e.g:a/3=b; -> a=b*3
16.‘A’65,‘a’97,'0'48
17arry[++x] = arry[x-1]+1; 这个bug很厉害,在win10下可以过,但在Linux下过不来。因写成++x,arry[x] = arry[x-1]+1;我调这个调了四天。。。。。)绝望
能写朴素就写朴素点!!!!
18.stl有个可以求下个排列(字典序)的函数:next_permutation,还有个求上个排列的函数prev_permutation;(c++福利多)
19.浮点数的运算如果不是卡常,那么一定要用double(没错一直用float的蒟蒻就是我)
20.尽量全局吧,因为来自ccf的神秘力量。。

浙公网安备 33010602011771号