BL(爆零)小技巧

1.对于取模中有减法的操作,要加上\(mod\)\(\%mod\),不然会有极大概率出现负数

2.对于有关组合数的预处理中,\(facinv[N]=po(fac[N],mod-2,mod)\),注意是\(N!\)\(mod-2\)次幂,而不是\(N\)\(mod-2\)次幂

3.对于递归分治之类的函数,如果写非\(void\)的并且没有直接返回值,那么在函数末尾一定要加上\(return\),否则会\(RE\)

4.对于结构体而言,如果比较函数有\(const\),那么其比较的重写的函数也必须有\(const,要么都没有\)const$

5.\(sqrt\)函数用的时候一定要开\(cmath\),虽然不开编译也不会报错,但是交上去会\(CE\)

6.主函数要写\(return 0\),不然的话它可能随机\(return\)一个东西,就无法让评测姬感受到了

7.尤其是在\(define\) \(int\) \(long\) \(long\)之后,一定要注意\(1ll\)之类的东西,比方说\(mod\)

8.对于滚动数组之类的时间域上的东西,尽量让时间在第一维,这样容易\(memset\)一些

9.不要把\(mid=l+r>>1\)写成了\(mid=l+1>>r\)

10.\(DEV\)上写一个函数不加类型不会报错,但是绝对会\(CE\)

11.对于\(define\) \(int\) \(long\) \(long\),如果有的话,那么一定要在\(INF\)或者是\(mod\)的上面

12.注意题目要求输出的是换行符'\n'还是空格

13.对于线段树注意区分修改和查询时传参是\([l,r]\)还是\([l,mid]\)\([mid+1,r]\),还有不要忘了\(pushdown\)

posted @ 2022-11-14 17:45  半步蒟蒻  阅读(116)  评论(0)    收藏  举报