1、不要使用万能头文件
一是有些oj是不允许用的 二是 他会让你忘记一些比较长的头文件怎么写 比赛的时候不能用 那就gg
2、c++打函数的时候,一定要打retrun。
3、 开数组不要开的刚好 一定要多加几个
3、有的oj 用的是%lld 有的是%I64d 热身赛的时候注意测试下
4、cin cout尽量不用 很耗时间 很慢 用scanf printf 就好 包括那些 stack queue 什么的 能手打都手打
5、STL里面的 min max 函数在循环里不要用 调用太慢 费时间 用三目运算符代替
6、abs()这个函数不支持long long 建议int也不要用这个函数 用三目运算符 a=a>0?a:-a;
7、最大值设置为 0x3f3f3f3f
0x3f3f3f3f的十进制是1061109567,是10^9级别的(和0x7fffffff一个数量级)。如果我们想要将某个数组清零,我们通常会使用memset(a,0,sizeof(a)),因为memset是按字节操作的,因为0的每个字节都是0(一般我们只有赋值为-1和0的时候才使用它)0x3f3f3f3f的每个字节都是0x3f,我们只需要memset(a,0x3f,sizeof(a))。
8、double 变量是不能判断 == 的 因为double 存的时候 3.5 存进去的是3.499999 所以要用减法来判断是否相等
9、位运算 a/2写成 a>>1 a*2写成a<<1 a*2+1写成 a<<1|1 判断奇偶 a&1 一个不省多少时间 但是操作多了 就节省很多时间
另外 位运算的优先级非常的低,注意打括号。
10、用java写题时候 类名必须是Main 复制的时候不要复制包名
11、c和c++输出不要混着用
12、取模运算的题目 最后答案加个 (a+mod)%mod 防止结果出现负数
13、c++头文件里面的c换成.h,会快非常多。 (大佬说的