[置顶] 那些年,恶心过我但帮助我成长的Trick(各种陷阱、坑)

有颜色的是最近更新的。


 1、(5.12 宁波工院校赛)给定一个n*m的矩阵,然后进行操作,搜索题目经常出现这样的情况。常规的n表示行数,恶心的n表示列数。

 2、(5.16  Zoj  3181)  由于答案比较大,如果对某个数取余,相乘或相加容易超32位int,此时应在容易越界的地方换上64位int,否则答案直接设为__int64或者long long。

 3、(5.18  Zoj  3395)  题目要求的字符串重复次数为1到m,但用后缀数组解题时要特判次数为1时的情况。 

 4、(5.19 Xtu  1143)   当m叉哈夫曼树的节点数n不满足n%(,m-1) == 1% (m-1)时,应该用0补上,这样才能正确构造哈夫曼树,当n == 1时还要特判,取余时都应多注意

 5、(5.19 Xtu  1146)  不能分离的婚姻匹配问题,不能用常规的稳定婚姻算法求解,必须要贪心,每次先选择最不喜欢,再选择喜欢的更新。


 6、(5.20 Poj 1625)   建字典树用的串中存在某些串是其他串子串的情况,所以在改造trie图时要加一句this->flag |= this->fail->flag。

 7、(5.20 Poj 1625)   做高精度问题时,最后的答案可能是0,由于高精度容易无视0,所以要考虑是否需要特判。

 8、(5.20 Poj 1625)   题目要求输入的字符Ascii码大于32,有可能含有空格,用scanf会出错,输入字符串必须判断是否含空格。      

 9、(5.23 Hdu 3117) 题目要求输出的是Fibonacci的最后取余完的四位数,可能不足四位,要用0补上,也就是printf("%04d\n",ans%10000);

10、(5.27 Hdu 3535) 题目要求用背包解,常规的背包容量下标是从1开始的,0表示初状态,但这题的容量有可能到0,以后的背包题也可能到0.


11、(6.05 Poj 3181)  题目要求输出组合方案数,而方案数不仅可能超32位int,还可能需要高精度,注意估计答案的范围。

12、(6.08 Hdu 2767) 添加最少边数使得原图变成强连通图,当强连通分量为1的时候要特判,因为他不需要添加边就可以成为强连通图。

13、(7.05 Uestc 1558) 输入一个n再输入一个带空格的字符串中间不能用getchar而应用gets,因为n后面可能多若干个空格.

14、(7.05 Uestc 1558) 函数Min(a,b)宏定义和正常调用效率有差异,正常情况下宏定义效率高,但是当#define min(a,b) a<b?a:b中的b为Query()这样的函数时效率就低

15、(7,18 hdu 2874) 在深搜的时候将某个变量定义成全局变量,结果在递归时就错乱了。


16、(7.29 Hdu 2242)  遇到双连通分量问题时要特别注意重边的情况,这时要特判。 

17、(8.1  CF 110  A)   题目说any end of the string,end我以为是末尾,没想到是任何端点的意思,被卡了一个小时半。卡题的时候最先想的应该是是否读懂了题目。

18、(8.3 Hdu 1796)   本题要求lcm和gcd,但是数据中会混进0,必须要删掉或特判才不至于RE.

19、(8.4 CF 107 D)    题中有这句话Any its substring with length equal to k is a palindrome,当某个串符合这种情况时为合法串,但是没有长度为k的子串时也合法,好无语。

20、(8.15 CF 103 D)   题目求到源点距离为为l的点或边上的位置数。而边上相同的位置有可能被统计两次,需要特判。


21、(8.23 CF 96 E)  题目给一个操作序列,F表示前进,T表示转弯,必须修改m次问最远距离。m可大于n,而我的dp方程不允许这种情况。学到一个技巧,当转移到的

                                    状 态下标小于0,允许的话就让全部状态的下标都增加100或者200或者...

22、(9.21 Poj 4025) 用前缀和后缀构造字符串,当字符串为单字母的时候要特判,不能由前缀或者后缀组成。                              

你可能感兴趣的:(算法)