精选傻X错误 && 自己的套路
声明
参考课件由Accelerator汇编
1. 随手注意的细节
你写的main 真的是 main 么?
- 在无向图或者网络流找反向边的时候,编号 \(xor 1\) 的前提是,你的第一条边编号是 2或0(推荐是2)。
- LL pow(); ......int tmp = pow(2,3);
- 别看样例是啥你程序就写啥……有的题目离线做可能更容易(前提是它没有强制在线)
- 别写的太快,中间忘了取模。
- 大括号被省略的前提是,只有一条语句。在写完 for; if 之后一定看看后面是否误打分号
- 对于地图题请注意到底什么是 n, 什么是 m, 判断数组越界的时候到底是 n, 还是 m.
- 有些题比较坏,读入 2 *n 个数字,这个时候一定要注意数组是否越界。
- 请不要使用关键字, 奇葩关键字有: next, left, right, count, x1,x2,y1,y2, clock
- 建议在判断的时候这样写:
if(0 == x)
- 在有for(i: n->1)的代码时,注意不要这样:
for(int i = n; i >= 1; i++)
,在有for的时候,别这样for(int i = 1; i <- n; i++)
- 有返回值的函数,一定要看看有没有
return
; 函数写好了,别忘了调用(建议使用gdb-wall)(在IDE中也可以开-wall,这样也能避免,除了你在main函数里或者是全局声明参数却不用时,它才不会warning,其他的...应该会吧, 所以要注意这些。) - 取最小值最大值的题目,如果过程中数据有负的,记得memset成
-0x3f3f3f3f
- 注意无向图初始化的边数
如果要求前缀和,而且你又sort,注意别把他们的顺序搞错了
2 在考场上的时候首先应该注意的
先看第一页,先看题目叫啥,时空限制,有的题可能时限很长,要好好利用。
- 请好好计算自己的内存,建议自己sizeof看看(之后记得(double)size/1024/1024),计算内存要计算所有的东西在内,不要认为自己把一个数组卡到了 125M,128M 就没问题了。要努力的计算并测试自己会不会爆栈(现在应该不存在这个东西了)。
- 请看好题目中的每一个限制,不要自己少读一个条件被卡的半死不活, 或者主观臆想添加条件!
- 没人说过第几题是难题……请不要为自己设置障碍。
- 你旁边的人键盘敲的响不代表他什么都会的,也可能是什么都不会无聊到爆;你旁边的人看第三题不代表他什么都会的,也可能是在努力的调暴力和骗分;你旁边的人唉声叹气不代表他什么都会的,可能他就是真的不会才叹气。相信自己,调整心态,第三题你不会别人一定也不会,所以要好好写暴力,第三题你会不是说只有你会,所以要好好对拍。
记得最后把调试信息都注释(建议使用debug函数)。在调试的过程中不用调一个删一个,推荐注释掉。
3 一些有关知识的问题
在搜索的时候注意判重,常用的姿势有: 数组直接判断,map 直接判断,直接 Hash,进制转换 Hash,康拓展开 Hash。
- 论初始化:多组数据的时候要注意清数组,清图论的 cnt,清变量,但是有的题千万不要每一次把所有的东西 memset 或者 memcpy,要用多少清多少;清图通常只需要清 head 和 cnt;指针动态分配变量需要在构造函数中初始化;在二分答案的时候,请注意各种初始化的问题;滚动数组要注意当前维初始化的问题;dp 最小值的时候要注意初始化最大值的问题。
- 不下降可以相等,但是上升不可以。这点要看好。
喜欢 define 的同学请不要乱用,首先,define 的函数传参数不要直接传函数,这样可能会导致反复调用;其次在数据范围的 define,瞎用会GG。如果实在想要用请加上 (),或者改用 const
取模题不要忘记取模。模数爆 int(为longlong什么的),请写快速加。模数不爆 int,加减乘除之后可就不好说了,过程有减法,别忘了转正。(先%再+再%)
请确定自己是左闭右开还是左闭右闭,在写对应的数据结构或者二分时。
关于二分答案的姿势,网上有几种不同的写法,这个同学们应当理解,好好掌握一种正确的解法即可图没说联通就不一定联通, 给定区间的时候没说 L < R , 那 L 和 R到底是什么幺蛾子就不好说了,搞不好会全体 RE。
喜欢 dijkstra 的同学请注意否有负环,喜欢 spfa 的同学请注意边和点的数量比例。
一些时候涉及到浮点数的输出,要注意精度问题。另外浮点数不能直接判相等,正确的姿势是
fabs(a-b) < max( max(a,b), 0) * eps
- 输出"%" 请用"%%"
- 二分答案的时候可能发生 (L+R) 爆 int 的事情
建议大型题目时时编译调试,把好解决的小问题先解决,这样不会因为小问题而 GG。
注意自己的排序或者重载小于号,搞清楚逻辑,你写的到底是从小到大还是从大到小。另注意小于号不要实现等于的东西,否则会 RE.
有的 LL 需要全程开, 但这不意味着你解决了全部的问题,有的时候还会爆掉 long long , 这种问题常会出现在两种二分验证情况下,第一种求和验证问题,如聪明的质检员,对于这种问题的解决方法就是边比较边计算,一旦不合法马上 return false。第二种是求和限制问题如 BZOJ 2527,他
的合法要求很低但是实际值非常高,我们也不能中途停掉,我们的方法是如果合法那就把值设置在合法上限。注意一些数据结构的边界问题,比如树状数组不能维护”0” 的信息,如果需要维护,就要集体 +1.(建议大部分从1开始编号)
无向图边开二倍!!!
分解质因数之类的,和质因数有关的操作,一定要好好考虑"1"
4 文件错误
自己注意!!!
不要效仿!!!!
写代码之前就要先写文件读入输出
(建议:如果是Win7下的机子,建议打开资源管理器->组织->文件夹和搜索选项->查看, 关闭那个选项:隐藏已知文件类型的扩展名)
5 Best Solution
最终忠告:
写暴力就检查两遍,写正解一定要对拍,并测试极限数据。
就算不写对拍也要自己手写较大的自己测一下
精选傻X错误 && 自己的套路的更多相关文章
- OI中常犯的傻逼错误总结
OI中常犯的傻逼错误总结 问题 解决方案 文件名出错,包括文件夹,程序文件名,输入输出文件名 复制pdf的名字 没有去掉调试信息 调试时在后面加个显眼的标记 数组开小,超过定义大小,maxn/ ...
- Control reaches end of non-void function 犯过最傻的错误
之所以会报“Control reaches end of non-void function ”的警告,时因为方法名中缺少返回类型.正确的写法如下: +(void)setMobile:(NSStrin ...
- 记录一个很傻的错误(C++)
使用的vscode写代码,导入了vector,memory,然后忘了导入string.但是代码中能够提示std::string也就让我忘了导入string.然后就莫名其妙的报错了.找了很久的错.记录下 ...
- luoguP1871 对撞机【赛后第一题
题面 题目描述 在2312年,宇宙中发现了n台巨型对撞机,这些对撞机分别用1-n的自然数标识.科学家们不知道启动这些对撞机会发生什么危险事故,所以这些机器,刚开始都是出于关闭的状态. 随着科学家们的研 ...
- AVL的删除写法的一个错误
今天在写AVL删除的时候犯了一个傻逼错误,调了很久,教训惨痛,引以为鉴. 树中允许有重复节点,如果删除的节点有重复,则只删除1个. AVL删除采取的方法是首先判断待删除节点是否存在,如果存在,那么判断 ...
- SpringMVC注解@RequestMapping之produces属性导致的406错误
废话不多说,各位,直接看图说话,敢吗?这个问题网上解决的办法写的狠是粗糙,甚至说这次我干掉它完全是靠巧合,但是也不否认网上针对406错误给出的解决方式,可能是多种情况下出现的406吧?我这次的流程就是 ...
- Codeforces 982E Billiard 扩展欧几里德
原文链接http://www.cnblogs.com/zhouzhendong/p/9055728.html 题目传送门 - Codeforces 928E 题意 一束与坐标轴平行或者成$45^\ci ...
- 【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 ...
- noip做题记录+挑战一句话题解?
因为灵巧实在太弱辽不得不做点noip续下命QQAQQQ 2018 积木大赛/铺设道路 傻逼原题? 然后傻逼的我居然检查了半天是不是有陷阱最后花了差不多一个小时才做掉我做过的原题...真的傻逼了我:( ...
随机推荐
- 使用 Scrapy 的 ImagesPipeline 下载图片
下载 百度贴吧-动漫壁纸吧 所有图片 定义item Spider spider 只需要得到图片的url,必须以列表的形式给管道处理 class PictureSpiderSpider(scrapy.S ...
- docker 私有registry harbor安装
一,harbor安装: 参考:Installation and Configuration Guide 1,安装docker 2,安装docker compose sudo curl -L " ...
- [Linux] 低版本centos升级git解决fatal: HTTP request failed
编译用的一些依赖yum install curl-devel expat-devel gettext-devel openssl-devel zlib-develyum install gcc per ...
- Linux下的 mariadb 使用 root 用户启动方式
近日因测试安全产品需要,想调整mariadb的启动用户为root, 经历一番波折后终于成功! 注意:以root身份启动mysql是一项非常危险行为,相当于给了数据库操作用户(数据库管理员或黑客)一个通 ...
- JUC-8-lock和Condition使用
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAANwAAADHCAYAAABySz3ZAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjw ...
- 5.jenkins 构建任务2--PHP项目
推送代码 PHP 项目 然后我们要做的就是将 .jenkins下面 workspace下的代码. 推送到我们的项目机器上面 就ok了. 我们可以在php的jenkins的 项目配置中选择使用shell ...
- LeetCode解题笔记 - 1. Two Sum
1. Two Sum Given an array of integers, return indices of the two numbers such that they add up to a ...
- bzoj 5218: [Lydsy2017省队十连测]友好城市
题意: 这题显然直接tarjan是做不了的. 这里安利另一个求SCC的算法Kosaraju,学习的话可以见这篇博客 于是结合莫队,我们有了个暴力. 发现主要瓶颈是dfs过程中找最小的未经过的点,我们用 ...
- 基于Django的Rest Framework框架的视图组件
本文目录 一 基本视图 二 mixin类和generice类编写视图 三 使用generics 下ListCreateAPIView,RetrieveUpdateDestroyAPIView 四 使用 ...
- Oracle讨论Java 13版本
JDK 13提高了应用程序性能,添加了两种语言功能预览,以及更多JDK 13 根据Oracle Java Team的说法,JDK 13致力于通过提高Java SE平台和JDK的性能,稳定性和安全性来 ...