看到他人的优良习惯,作为蒟蒻肯定要抄袭过来....记录刷题时候犯下的2b错误======================================================
1)bzoj1030 初始状态没想清楚乱射,调半天没想到...
2)bzoj1016 光顾着并查集的路径压缩..结果把合并给忘却了... 傻×的没注意循环的范围,WA了半天。
竟然忘记取模...
3) bzoj1037 想出正解了,转移的时候乱写了一下结果调了半个小时...
4)bzoj1038 注意判平行的情况...还有就是观察数据范围很小,明明能乱搞还去写什么二分,最后还写挂了呵呵....
5)spoj gss7 这题成功彰显了作为一个傻叉的优秀潜力,傻叉的魅力是无穷的! 1)读错题目,以为是区间加减,所以就不会做了...(结果发现是区间赋值)(话说区间加减怎么做?求科普求鄙视咱弱菜.....)
2)线段树的向上传递的函数maintain一字之差调到最后才发现写错了!!....
3)一开始舍不得开线段树数组,然后无限RE,更傻叉的是无限RE之后咱竟然还没想到是数组开小了,还自己画了三四棵树造数据在这里乱搞......
4)搞错方向,这个题目的更新要先从深度深的往深度浅的爬,然后再往深度深的钻,所以两种情况下,线段树更新答案递归左右区间的顺序是不相同的,更新用的信息是lmax还是rmax也是不同的,傻叉的一开始根本就没想到!
6)vijos p1734 没看清数据范围,数组开小了+数范围开低了,WA一次。
7)vijos p1726 这里选取增广点没有仔细思考,另外一开始的那个静态费用流未想清...后面想通了是倒着加点的缘故。
8)link-cut-tree的旋转要注意,由于每一个节点都存储了一个父亲,而且为了保证链不乱断开,所以我们在旋转的时候要判断某君父亲的父亲是否在当前的链中,在的话才更新该父亲的父亲的儿子为XXX,否的话不理。
9)自底向上splay维护翻转标记的时候,到根了要先下放根的翻转标记,再下放自己的,其余情况先下放父亲的父亲的翻转标记,再下放父亲的,最后还记得下放自己的翻转标记,这样才能保证得到的信息合法。
10)vijos p1621 没注意精度问题,判两个数相等只要相对误差在1e-12之内即可,但是没有加,结果傻×的由于精度问题,松弛始终进行,TLE了半天.....
11)转化成熟悉的模型才是重点,往往看起来的不可做题思考其本质也许就可以捉了...
12)BZOJ1042,注意处理边界,这道题边界应该是-1而不是0,。
13)Spoj qtree2带翻转标记的Link-Cut-Tree 记得除了 Splay释放标记外,别忘了查找第K大这类自顶向下的函数都要下放标记 啊啊.....
14)P党的arctan 函数只能返回 [-π/2,π/2]的函数值,如果要扩展到 [0,2*π],还是自己手写函数特判....
15)CF round #234 E ,神数据,各种以前不遵守的细节都冒出来了...
1.傻×的不会估计zkw的大小,然后WA无数遍,从1*10^5试到7*10^5,终于过了。
2.傻×的一开始是为了调试方便开的数组很小,然后调试完了交上去才发现忘记改回来了。
3.傻×的写continue,忘记将每一次循环都必须干的事情放在continue前面了,然后又不是致命的错误,然后各种WA,最后自己造了几组数据才发现。
4.傻×的是每一次读入数据之后求出一个最大值取对数来判断需要多少棵ZKW线段树,然后又没看清这些数据是可以取0的,然后log 0 RE了一次。
5.傻×的zkw线段树的大小一开始取错了
16)bzoj1023 作为P党还是尽量转C++把...注意fillchar这个初始化函数不要放在一些经常用到的过程或者函数里面,尤其是在fillchar的数组很大的情况下,会TLE的很惨(据测可以达到6倍以上,即加上时2000+ms,去掉300ms左右)
17)bzoj1018 考验耐力的线段树...注意bzoj的题目描述,把x,y坐标搞反一次,然后无限RE。
然后就是注意递归顺序,类似GSS7的那种。
然后还有就是全局变量写在过程里面的时候要小心它的赋值可能会给后面的过程带来什么影响没。
18)bzoj1044 ,B错误1就是读错题目,其二就是写的时候根本没想清= =。果然弱...
19)反复调用的过程还是强烈感觉不要用fillchar....
20)写长又难写的程序不难,关键是在写完之后往往各种激动而对于题目的多组数据的要求忘了加个回车....
21)bzoj1051 论脑袋短路的危害性...DAG不一定每一个点直接相连啊....
22)bzoj1054 论边界情况的探讨....好吧咱是蒟蒻= =
23)bzoj1055 注意看题,还有无解的情况啊,另外dp尽量考虑简单的容易写的,在一个已经构好的dp上可以优化就尽量优化把。
24)tyvj 普通平衡树。总结下Treap容易写挂的地方。
1)旋转的时候要看清。
2)插入的时候先特判根是否是NULL(即0),如果是的话就直接新建节点然后根变成这个返回。否则查找应该插入的位置,如果Treap有Size域,查询的时候维护一下size即可。然后找到之后旋转到叶子的时候特判它是不是根,如果是的话记得把根赋为它的父亲。然后做堆操作之后记得判断这个点是否旋到了根,是的话根变成它。
3)删除的时候先查找,查找的时候把沿途的节点维护一下size,然后旋转儿子的时候维护一下儿子的size,还要特判如果它是根的话,根赋给已经旋到上面的一个儿子。
24)Poj1637 论疲劳||不细心?变量用错:AC。
25)bzoj1064 假面舞会,这道题目想到正解的一部分了然后233的一激动结果没分类讨论没仔细想就去看题解来看看是否正确,教训.....
26)bzoj1069 最大土地面积 注意一开始的求凸包中调整top,和复制一份到后面de顺序!
27)bzoj1067 降雨量 这题开始坚持一个变量在它的范围内只做一个用途,不中途改变做其他用!!
28)bzoj1070 修车 1.没坚持bzoj1067的....2.maxn开小了
29)bzoj1071 int64改成longint 速度变2倍233...然后就是循环变量注意别打错。
30)hoj matrix3 那道题目需要读入高度,然后高度高的向四周的高度低的连边,然后咱傻叉地边读高度边连边,突然想起来这个时候下方和右方的高度还没有读进来啊233。
31) bzoj 1075 最优驾驶。
这道题没什么人做么?题解比较少...所以犯了很多错误。题解见bzoj标签。
1.变量名再一次混用,然后就WA成狗。
2.abs 这个函数建议少用....貌似对于1e10以上的数都是错误的感觉...
3.DT的精度问题233....四舍五入以后用 round(x+0.5-eps)!
32)bzoj 2327 勾股定理
比较DT的一个错误..而且比较隐蔽,脑抽的话就容易跳过去...
例子:
for i=1 to n do
begin
...
for k=1 to n do
if( ) continue;
end
这里某Z的原想法是 如果特判成功的话就 continue 下一个i,但是咱根本就没注意到 这个continue是在k这个循环里面,然后查了两天的代码(200行又比较隐蔽,各种DT)
33)bzoj3131 Sdoi 淘金
做完这题之后,咱觉得咱小学应该毕业了。
所以咱一定要好好做人,注意特判被除数为0的情况!!!!
34)bzoj3242 noi2013 快餐店。
1.线段树内存能开8倍开8倍,不能开8倍开4倍,不能开4倍...就像玩2048一样往下推就可以了...
2.注意答案可能的范围,然后初始化答案的时候一定要确保是无穷大或者无穷小的!
3.思考好...这道题分环上的和树上的...要分别思考~
35)CH ROUND 30
离散化咱竟然想当然...就是为了不想写二分查找啊233...100分没了啊啊啊啊啊...
36)CH ROUND 31
1)太不冷静了,很多题目想一半就扔了。
2)随机函数忘记打randomize233...RP那天又爆低= =。
3)读题错误= =,把题目意思理解错了,导致走上了写link-cut-tree的不归路...
37) 话说咱到现在才知道 dinic的当前弧优化不是咱想的那样的...以为递归版自带当前弧优化太天真了= =...今天想了一下突然明白了...咱们在每一次增广的时候,如果多次经过同一个点的话,那么咱们就不需要在第二次增广第一次已经增广的点,(假设第二次增广第一次增广的点成功,那么第一次为设么没能全部增广掉?),所以咱们存储一下最近一次增广增广的点,就可以节省时间。以前真的是傻叉了233...
38)bzoj1492
两个傻叉错误:
1)精度题目貌似已经提醒了...还傻叉的开那么大。
2)注意点的x轴相同的时候直接处理即可!
39)bzoj1191 超级英雄
自戳眼睛= =没看清题目...
40)bzoj3527 Zjoi2014力
sqr()的范围只能是 longint(c++int 内)
然后做除法 k/n*n,注意n*n可能会爆自己。
41)bzoj1998 Hnoi2010 Fsk物品调度。
这里注意!以后写取模优化的函数的时候不能只减一次!要么while 来减,要么直接 mod
42)bzoj2004 Hnoi2010 Bus公交车
以前一直看到C++er们用一种减法的取模,一直以为应该比 直接%要快的吧...然后今天试了一下,TLE和AC的差别额....0.0推荐在只有加法的时候使用这个取模方法,否则还是判定是否超过mo然后再%mo吧。
43)bzoj2727 Hnoi2012 双十字
调了一个下午的代码...结果最后看着ydc君的代码,看到mo 是10^9+9...真想撞向屏幕了22233333333
44)bzoj2729 Hnoi2012 排队
高精度注意要判位
45)bzoj2728 Hnoi2012 与非
1<<n注意可能会爆【范围在 int【p的longint】内,而且如果爆了不会报错而会返回一个乱七八糟的值回来= =】
46)poj2451
半平面交的几点注意的地方:
1)极角排序首先判断象限,象限不同的直接判象限,象限相同的再判断叉积。
2)注意对于浮点数赋初始值0的时候,要用 0.0 来赋,而不是0。 具体为什么咱们试一试先赋一个a=0然后write(a:0:1)即可。
47)sdoi2014 旅行
1) 注意栈溢出!所以dfs要改成bfs!
2)先加入点再tmp=e[tmp].pre!不然会少加入一些点!
48) spoj7001
1)注意数据范围可能爆longint!每一次都没有注意!这里指的注意指的是,虽然可能赋值的变量是Int64,但是做乘法的变量却是longint,这也一样会爆!
2)优化常数!
49)HAOI2011 problem b
注意能用longint 的地方不要用int64!这是在卡时间的情况下的很好的方法!
另外就是可以强制转移int64,使用 int64()里面加个变量就可以在运算的时候把某个变量的类型变成int64,这样子比直接用int64的变量貌似会快许多
50)SDOI2009 HH的项链
注意线段树一定要开足空间!!可持久化线段树还得加个logn的空间!
51) Bzoj2741 L
注意初始化的问题...不要用上次的答案做这一次的一个参考值,多种情况讨论的时候注意给每一种情况都要赋上相应的初始值!!!因为这个WA了一天了233333 =.=
52)bzoj3238
注意强制转化类型的话,要考虑到每一个情况,不要遗漏了!!!!!!
=============分割线=========53)某线段树模板题,wa了8发...
然后纠结到最后看别人代码,发现printf()忘记加\n......
然而在vim里面运行程序根本看不出来是\n的问题....
评论