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\)