声明

参考课件由Accelerator汇编

1. 随手注意的细节

  1. 你写的main 真的是 main 么?

  2. 在无向图或者网络流找反向边的时候,编号 \(xor 1\) 的前提是,你的第一条边编号是 2或0(推荐是2)。
  3. LL pow(); ......int tmp = pow(2,3);
  4. 别看样例是啥你程序就写啥……有的题目离线做可能更容易(前提是它没有强制在线)
  5. 别写的太快,中间忘了取模。
  6. 大括号被省略的前提是,只有一条语句。在写完 for; if 之后一定看看后面是否误打分号
  7. 对于地图题请注意到底什么是 n, 什么是 m, 判断数组越界的时候到底是 n, 还是 m.
  8. 有些题比较坏,读入 2 *n 个数字,这个时候一定要注意数组是否越界。
  9. 请不要使用关键字, 奇葩关键字有: next, left, right, count, x1,x2,y1,y2, clock
  10. 建议在判断的时候这样写: if(0 == x)
  11. 在有for(i: n->1)的代码时,注意不要这样: for(int i = n; i >= 1; i++) ,在有for的时候,别这样for(int i = 1; i <- n; i++)
  12. 有返回值的函数,一定要看看有没有return ; 函数写好了,别忘了调用(建议使用gdb-wall)(在IDE中也可以开-wall,这样也能避免,除了你在main函数里或者是全局声明参数却不用时,它才不会warning,其他的...应该会吧, 所以要注意这些。)
  13. 取最小值最大值的题目,如果过程中数据有负的,记得memset成-0x3f3f3f3f
  14. 注意无向图初始化的边数
  15. 如果要求前缀和,而且你又sort,注意别把他们的顺序搞错了

2 在考场上的时候首先应该注意的

  1. 先看第一页,先看题目叫啥,时空限制,有的题可能时限很长,要好好利用。

  2. 请好好计算自己的内存,建议自己sizeof看看(之后记得(double)size/1024/1024),计算内存要计算所有的东西在内,不要认为自己把一个数组卡到了 125M,128M 就没问题了。要努力的计算并测试自己会不会爆栈(现在应该不存在这个东西了)。
  3. 请看好题目中的每一个限制,不要自己少读一个条件被卡的半死不活, 或者主观臆想添加条件!
  4. 没人说过第几题是难题……请不要为自己设置障碍。
  5. 你旁边的人键盘敲的响不代表他什么都会的,也可能是什么都不会无聊到爆;你旁边的人看第三题不代表他什么都会的,也可能是在努力的调暴力和骗分;你旁边的人唉声叹气不代表他什么都会的,可能他就是真的不会才叹气。相信自己,调整心态,第三题你不会别人一定也不会,所以要好好写暴力,第三题你会不是说只有你会,所以要好好对拍。
  6. 记得最后把调试信息都注释(建议使用debug函数)。在调试的过程中不用调一个删一个,推荐注释掉。

3 一些有关知识的问题

  1. 在搜索的时候注意判重,常用的姿势有: 数组直接判断,map 直接判断,直接 Hash,进制转换 Hash,康拓展开 Hash。

  2. 论初始化:多组数据的时候要注意清数组,清图论的 cnt,清变量,但是有的题千万不要每一次把所有的东西 memset 或者 memcpy,要用多少清多少;清图通常只需要清 head 和 cnt;指针动态分配变量需要在构造函数中初始化;在二分答案的时候,请注意各种初始化的问题;滚动数组要注意当前维初始化的问题;dp 最小值的时候要注意初始化最大值的问题。
  3. 不下降可以相等,但是上升不可以。这点要看好。
  4. 喜欢 define 的同学请不要乱用,首先,define 的函数传参数不要直接传函数,这样可能会导致反复调用;其次在数据范围的 define,瞎用会GG。如果实在想要用请加上 (),或者改用 const

  5. 取模题不要忘记取模。模数爆 int(为longlong什么的),请写快速加。模数不爆 int,加减乘除之后可就不好说了,过程有减法,别忘了转正。(先%再+再%)

  6. 请确定自己是左闭右开还是左闭右闭,在写对应的数据结构或者二分时。
    关于二分答案的姿势,网上有几种不同的写法,这个同学们应当理解,好好掌握一种正确的解法即可

  7. 图没说联通就不一定联通, 给定区间的时候没说 L < R , 那 L 和 R到底是什么幺蛾子就不好说了,搞不好会全体 RE。

  8. 喜欢 dijkstra 的同学请注意否有负环,喜欢 spfa 的同学请注意边和点的数量比例。

  9. 一些时候涉及到浮点数的输出,要注意精度问题。另外浮点数不能直接判相等,正确的姿势是

    fabs(a-b) < max( max(a,b), 0) * eps

  10. 输出"%" 请用"%%"
  11. 二分答案的时候可能发生 (L+R) 爆 int 的事情
  12. 建议大型题目时时编译调试,把好解决的小问题先解决,这样不会因为小问题而 GG。

  13. 注意自己的排序或者重载小于号,搞清楚逻辑,你写的到底是从小到大还是从大到小。另注意小于号不要实现等于的东西,否则会 RE.

  14. 有的 LL 需要全程开, 但这不意味着你解决了全部的问题,有的时候还会爆掉 long long , 这种问题常会出现在两种二分验证情况下,第一种求和验证问题,如聪明的质检员,对于这种问题的解决方法就是边比较边计算,一旦不合法马上 return false。第二种是求和限制问题如 BZOJ 2527,他
    的合法要求很低但是实际值非常高,我们也不能中途停掉,我们的方法是如果合法那就把值设置在合法上限。

  15. 注意一些数据结构的边界问题,比如树状数组不能维护”0” 的信息,如果需要维护,就要集体 +1.(建议大部分从1开始编号)

  16. 无向图边开二倍!!!

  17. 分解质因数之类的,和质因数有关的操作,一定要好好考虑"1"

    4 文件错误

自己注意!!!

不要效仿!!!!

写代码之前就要先写文件读入输出
(建议:如果是Win7下的机子,建议打开资源管理器->组织->文件夹和搜索选项->查看, 关闭那个选项:隐藏已知文件类型的扩展名)

5 Best Solution

最终忠告:
写暴力就检查两遍,写正解一定要对拍,并测试极限数据。
就算不写对拍也要自己手写较大的自己测一下


精选傻X错误 && 自己的套路的更多相关文章

  1. OI中常犯的傻逼错误总结

    OI中常犯的傻逼错误总结 问题 解决方案 文件名出错,包括文件夹,程序文件名,输入输出文件名  复制pdf的名字  没有去掉调试信息  调试时在后面加个显眼的标记  数组开小,超过定义大小,maxn/ ...

  2. Control reaches end of non-void function 犯过最傻的错误

    之所以会报“Control reaches end of non-void function ”的警告,时因为方法名中缺少返回类型.正确的写法如下: +(void)setMobile:(NSStrin ...

  3. 记录一个很傻的错误(C++)

    使用的vscode写代码,导入了vector,memory,然后忘了导入string.但是代码中能够提示std::string也就让我忘了导入string.然后就莫名其妙的报错了.找了很久的错.记录下 ...

  4. luoguP1871 对撞机【赛后第一题

    题面 题目描述 在2312年,宇宙中发现了n台巨型对撞机,这些对撞机分别用1-n的自然数标识.科学家们不知道启动这些对撞机会发生什么危险事故,所以这些机器,刚开始都是出于关闭的状态. 随着科学家们的研 ...

  5. AVL的删除写法的一个错误

    今天在写AVL删除的时候犯了一个傻逼错误,调了很久,教训惨痛,引以为鉴. 树中允许有重复节点,如果删除的节点有重复,则只删除1个. AVL删除采取的方法是首先判断待删除节点是否存在,如果存在,那么判断 ...

  6. SpringMVC注解@RequestMapping之produces属性导致的406错误

    废话不多说,各位,直接看图说话,敢吗?这个问题网上解决的办法写的狠是粗糙,甚至说这次我干掉它完全是靠巧合,但是也不否认网上针对406错误给出的解决方式,可能是多种情况下出现的406吧?我这次的流程就是 ...

  7. Codeforces 982E Billiard 扩展欧几里德

    原文链接http://www.cnblogs.com/zhouzhendong/p/9055728.html 题目传送门 - Codeforces 928E 题意 一束与坐标轴平行或者成$45^\ci ...

  8. 【HAOI2011】problem b

    数论好劲啊 原题: 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数. 1≤n≤50000,1≤a≤b ...

  9. noip做题记录+挑战一句话题解?

    因为灵巧实在太弱辽不得不做点noip续下命QQAQQQ 2018 积木大赛/铺设道路 傻逼原题? 然后傻逼的我居然检查了半天是不是有陷阱最后花了差不多一个小时才做掉我做过的原题...真的傻逼了我:( ...

随机推荐

  1. AtCoder Regular Contest 99

    传送门 C - Minimization 第一次可能有多种选择,我们枚举所有的选择,然后两边贪心取即可. Code #include <bits/stdc++.h> #define MP ...

  2. Python网络编程基础 struct模块 解决黏包问题 FTP

    struct模块 解决黏包问题 FTP

  3. c语言文件

    完整代码块展示: #include <stdio.h> #include <stdlib.h> #include <string.h> struct student ...

  4. 【HDU4947】GCD Array(莫比乌斯反演+树状数组)

    点此看题面 大致题意: 一个长度为\(n\)的数组,实现两种操作:将满足\(gcd(i,k)=d\)的\(a_i\)加上\(v\),询问\(\sum_{i=1}^xa_i\). 对于修改操作的推式子 ...

  5. 配置vtk(Win8.1 + VS2012+VTK-5.10.1)

    1.下载相关软件 vtk-5.10.1.zip和vtkdata-5.10.1.zip http://www.vtk.org/files/release/5.10/vtk-5.10.1.zip http ...

  6. url中拼接中文参数,后台接收为乱码的问题

    遇到在URL中拼接中文的参数,后台拿到的数据为乱码的问题,这里来说一下问题出现的原因与解决方法. 大家比较关心的应该是解决的方法,因此先说解决方法. 解决方法 解决的方法是在客户端对这个中文参数进行编 ...

  7. 关于 ASP.NET Core 中的 RazorPages

    Contact.cshtml @page @model ContactModel @{ ViewData["Title"] = "Contact"; } < ...

  8. Visual Studio模板代码注释小技巧

    在日常开发过程中,难免有这样一种需求:就是你所建的每一个类文件或者接口文件都需要标注下作者姓名以及类的用途.如果我们每次创建文件的时候都需要写一遍这些信息是很烦神的.还好Visual Studio给我 ...

  9. 尉蓝色的P2P金融众筹平台手机模板

    蓝色的p2p金融投资众筹网手机模板html整站下载.实用的众筹app手机模板下载.主要页面有:众筹项目.发布.个人中心.登录.注册.优惠券.回报.项目详情.我要支持.帮助中心等总共37个手机页面. 模 ...

  10. JS基础语法---数组案例---9个练习

    练习1:求数组中所有元素的和 var arr1 = [10, 20, 30, 40, 50]; var sum = 0; for (var i = 0; i < arr1.length; i++ ...