(1)设的int scanf读入用long long,编译给过,交上WA0,以后最好用终端把warning也看看 ----NOIP模拟8-题
(2)qj测试点搞特判,判完没return 0,又继续走了… ----NOIP模拟12-数颜色
(3)数组开到函数间 开小了一直查不出来(找不到) ----NOIP模拟12-数颜色
(4)线段树二分到l==r后不return,又RE又MLE… ----NOIP模拟10-模板
(5)快读记得判负数,说不定什么时候输入为负嘞 ----NOIP模拟10-模板
(6)int函数记得写返回值,譬如权值线段树merge操作最后的return ro; ----NOIP模拟10-模板
(7)线段树查询时mid=(tree[ro].l+tree[ro].r)>>1而不是(l+r)>>1你在查询不是改区间大小,所以往下查时左右限制还是l和r;具体见 ----NOIP模拟13-优美序列
(8)千万别在数组初始时={0}/={1}…否则编译错误,他会出“Your source code compiled to 16013336 bytes which is too big, too thick, too long for us..
.”
恩你too big,too think,too long for编译器了 ----NOIP模拟13-矩阵游戏
(9)所有不确定优先级的运算符,一定要带括号
例如:!A%B 如果A%B不加括号,就会计算 (!A )…… % ……( B ) 呵,答案可想而知
(10)学到现在多测还不换行,是不是应该挨打
(11)并不zz的错误:bitset不能直接取,例如:ans+=pd[i]是不对的,会RE 0
(12)分治,二分啊的mid别开全局啊,不知不觉被递归改了,死的不明不白
(13)取模别先加再减mod,一边加一边模,有mod时造几组大样例看会出负吗
(14)线段树或主席树区间查询,会开两个变量ls1,ls2记录左右儿子的ask,但那个ask并不是左右儿子都会走,而你最后却返回了ls1+ls2
而没走的那个儿子对应的ls即为他的初始值,如果你初始不赋0,那返回值就……(如果出现的值是-∞或+∞可能就是这的错)
1 int mid=(l+r)>>1,ls1=0,ls2=0/*就是这*/; 2 if(zuo<=mid) ls1=ask(tree[L].lc,tree[R].lc,zuo,you,l,mid); 3 if(you>mid) ls2=ask(tree[L].rc,tree[R].rc,zuo,you,mid+1,r); 4 return ls1+ls2;
(15)求C(2*n,n),记得把阶乘,逆元数组开到2*n+1
(16)数组开到maxn,千万别用到maxn,会发生不可思议的事情,还是开到maxn+1吧
(17)dfs暴力也能打错?
- dfs前写break/continue千万要小心,看是否把本需要dfs的地方跳过了
- 最夸张的是不dfs...走了一遍dfs(1)...完了...
(18)数组没开小!!!!!!!爆零两行列!!!!!!!!!!!
(以上为比我还zz的secret大神警戒自己数组开小了的话,前言不搭后语)
数组要开大啊啊啊啊啊啊啊!!!!!,不是不写前向星就不用开大数组的,况且这道题还应该开到maxn*maxn
----csp-s66-传递
(19)二分!= break,break只能break掉不成立的情况啊,而二分需要算所有成立情况的ans,
我只靠找到不成立的解不能算完所有的答案啊…… (完全错还觉得自己能A系列,稍完蛋)
----csp-s67-d
还有对拍,只拍<=20的点,真的可能拍不出错
嗯嗯,这次考试真的锻炼了考试心态和决策:肝T1错解从7:00肝到9:32,两个半小时,
其实大概9:00的时候觉得不行就去打了T2的读入(只有读入),想了想就又回T1了,想把它A掉,可最后不仅T1没A,T2,T3都没打完,qj分都没得全
还有一个小插曲,在试大样例的时候没把qj注掉,满心欢喜以为自己跑过了,(可能是时间太紧,过于紧张的缘故,反而得不偿失啊)
总之,合理分配时间,最起码先把暴力码完再肝题,觉得自己想到正解一定要证明好了再码,否则就是在纯粹的浪费时间
最后,粘上自己倒一的悲惨情形以警戒自己吧:(与前一个人还差5分呢) 加油吧!
(20)最近怎么了,暴力都打不对了,状态急需调整
for()循环不能改的变量别改,要不就设个临时变量,怎么这也错呢?
----csp-s-74-玩具
void find(int pos,ll h,ll add) { if(pos==n) { mu=(mu+add)%mod; zi=(zi+h*add%mod)%mod; return ; } for(int i=0;i<h;++i) { num[i+1]++; //add=add*num[i]%mod; find(pos+1,h,add*num[i]%mod); //我一开始写成了上面那句,这儿的add*num[i]%mod直接写add,(疯了) num[i+1]--; } num[h+1]=1; find(pos+1,h+1,add*num[h]%mod); num[h+1]=0; }
(20)sort的cmp不写return?(压行的锅?哭死……
(21)别刚概期题谢谢……你也刚不出来
(22)啊啊啊,第一次一个题集合了如此多的zz((地错 哦 zsecretz )不知道前面括号secret都瞎打了些啥系列)低错
first. 数组下标不能是负的,怎么这还错 ? ? ?
second. (学习WD)题目有k,但样例里的k是5,所以我的代码里所有应该写k的地方……我都写的5…… (