首页 > 其他分享 >【随笔】oier错误合集

【随笔】oier错误合集

时间:2024-01-17 21:35:57浏览次数:31  
标签:取模 OJ int oier long 注意 随笔 合集 感谢

(转发一下我在某网站写的博客)

养成良好的代码习惯,从我做起。

闲来无事,开个新坑。点个赞吧亲~

也算是在我退役之前留下一些对后人有意义的东西了。

本博客记载一些比较通用的容易写挂的屑细节。

编译选项加 -fsanitize=undefined -Wextra -Wall 有效避免大部分错误。

TLE

  • 多组数据不限组数只限制 \(\sum n\),却使用了 memset 清空。
  • 没写快读,甚至使用不关闭流同步的 cin 读入。
  • 没删 cerr 或者 fprintf(stderr) 等调试语句。
  • for(int i = n ; i >= 1 ; ++i)
for(int i = 1 ; i <= n ; ++i)
	for(int j = 1 ; j <= n ; ++i)
		// do sth
  • 交互题要记得 cout << flushfflush(stdout)。(感谢 WYXkk)
  • dfs 没判断 fa 无限递归(当然最后有可能会 RE、MLE)。(感谢 lndjy)
  • bfs 队列不 pop。 (感谢 abruce)
  • Dijkstra 堆建成大根堆。 (感谢 maruize)
  • ……

WA

  • 如果多组数据交换两组数据的位置得到答案不一样:多测不清空,爆零两行泪。
  • 数据类型:
    • 你的函数传参有混用 intlong longdouble 各种类型吗?
    • 你可能是被卡精度了,请减少浮点数的使用。
    • 说到浮点数,你有写 eps 吗?或者说你定的 eps 是否合适?(有的时候 eps 过小也是会出问题的)
    • 你是不是浮点数运算输出了 -0.000000
    • 浮点运算算出了 nan 或者 inf
  • 最大最小值:
    • 最大值设成了 0x3f
    • 最大值不够大。
    • 10000000007,1 << 62。
    • 最小值设成了 0,(答案有可能是负数)。
  • 快读你读入了负数吗?
  • 快读你 return 了个啥玩意,别告诉我 return 0 了。
  • 没删调试语句。
  • 你到底运行了自己的初始化函数没有……
  • 你的数据分治的判断部分到底写对了没有……
  • 你的变量重名了吗(尤其是与全局变量撞了)?
  • 注意输出格式,是空格还是换行;多组数据之间是否要额外换行?
  • 请注意 Windows 系统与 Linux 系统下 rand() 值域的显著差异。
  • 滚动数组和刷表法连用你清空了上一轮的的 dp 值吗?
  • 多项式全家桶一定要记得清空数组啊啊啊啊啊啊啊啊啊啊!!!!!!
  • 求求你了,NTT/FFT 的时候千万别 swap(i ,rev[i]);
  • 请注意 dfs 时在栈中已访问不是一个东西。
  • 矩阵树定理,行列式交换要乘 -1
  • 取模
    • 随手不取模,爆零两行泪。
      • 两个 int 乘爆了
      • 三个 long long 乘爆了
      • 负数忘记取模后 +p 再模 p 了
    • 注意对指数的取模是 \(\bmod\ \varphi(p)\)。
    • 拓展欧拉定理的指数取模还要加上 phi(p),不加这个你就没了。 (感谢 Karry5307)
  • UB:
    • 如果同一组数据运行两次答案不一样:检查是否出现 UB。
    • UB:s[read()].push_back(read())。 (感谢 RedreamMer)
    • 不要让赋值左右同时出现自增自减符号。
  • sort 时有 cmp 不要忘记,有多个 cmp 不要混淆,重载了 < 更要小心。 (感谢 字幕君)
  • 注意考试/某些神仙OJ要求文件输入输出。
  • 多测的时候,读入一半就直接完成特判 return,忘记读入该测试数据全部内容,导致输入错位。 (感谢 ducati)
  • 有多个名字相近的函数的时候不要调用错误,如 dfs1(), dfs2()。 (感谢 maruize)
  • splay(LCT) 上二分要记得 pushdown。
  • 删调试语句的时候把输出答案也删掉了。 (感谢 ducati)
  • 输出 unsigned long long 的方法是 %llu 而不是 %ull
  • 注意二分答案的时候,check 函数的返回值到底是 bool 还是 double/int
  • 注意位运算优先级!!!(& > ^ > |
  • 关闭流同步流混用 C 风格和 C++ 风格输入输出函数。
  • ……

CE

  • 我建议你先找台机子编译一下代码。(感谢 happydef)
  • 锅都是 OJ 的:
    • 某些神仙 OJ 不允许使用 bits/stdc++.h
    • 某些神仙 OJ 不能使用 c++11
    • 某些神仙 OJ 不允许你的函数与库函数重名(指 Atcoder)。
    • 某些神仙 OJ 的神仙题卡语言,请确保您会这些语言再去做。
    • 某些神仙 OJ 编译开了 -Werror,你的代码必须没有 Warning 才能过编译。(感谢 WYXkk)
  • 你的数组是不是开得太大了?
  • 定义了一些形如 timey1 直接的变量,与库函数重名。
  • 库函数自带的 maxmin 要求两个参数变量类型相同。
  • using namespace stdstd:: 二选一。
  • 重载了 < 用来 priority_queue 的话,要记得加 const
  • const 对象或者函数调用的函数也要是 const 的。
  • 数组下标不能是浮点数。
  • ……

RE

  • 操作空指针 (nullptr)。
  • 下标越界,数组开小。
    • 注意有些维度可能是在值域上,而不是数组长度上。
  • 除以 \(0\),模 \(0\)。
  • 线段树记得建树。
  • 强制在线询问结果错误,导致解码后的数据超出下标。(实际上是 WA)
  • scanf("%d",n); (感谢 qidirj)
  • printf("%d",&n);
  • 注意宏定义中,运算优先级的问题。
  #define MX 100000 + 7
  struct node{
      int w ,lc ,rc;
  }pool[MX * 40];
  • 注意 sort 定义的 cmp 必须能严格区分两个元素的大小或相等关系,如果出环,将可能会 RE。(感谢 xiaolilsq)
  • ……

MLE

  • 少用 stackdequequeue,很占用内存,vector 占用空间比前面几个小。
  • 少用指针多用数组。
  • 注意宏定义中,运算优先级的问题。
  • 减少不必要的 long long 使用。
  • 函数记得写返回值,即便你可能根本没有用到。(UB 可能导致 MLE)

标签:取模,OJ,int,oier,long,注意,随笔,合集,感谢
From: https://www.cnblogs.com/imakf/p/17971203

相关文章

  • Python 随笔第5小节
    '''列表可变序列可重复有序【】'''importoperator#创建列表的第一方式lst=['hello','word,',98]print(lst)print(lst[0],lst[-3])#顺着进行是01234567逆着数是-1-2-3-4#创建列表的第二种方式lst=list(['hello','wwww&#......
  • 【比赛记录】国庆集训合集
    联赛组国庆训练1\(\text{T1}\)GirlFriend区间3好题。先把质数筛了。考虑将所有区间按照左右端点离散化。将询问离线下来,然后对于每个右端点统计左端点上的贡献。即从小到大扫描\(r\),维护每一个后缀的答案。考虑使用set维护区间的并。考虑已处理前\(r-1\)的询问,处......
  • 位运算合集
    位运算合集(&、|、^、~、>>、<<)​ 在学习和研究源码过程中,经常遇到使用位运算的逻辑,代码看着简洁,执行效率也高;特此总结和记录位运算的使用方法。1.位运算概述从现代计算机中所有的数据二进制的形式存储在设备中。即0、1两种状态,计算机对二进制数据进行的运算(+、-、*、/)都是叫......
  • 即时通讯技术文集(第32期):IM开发综合技术合集(Part5) [共12篇]
    为了更好地分类阅读52im.net总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第32 期。[- 1 -] IM开发干货分享:如何优雅的实现大量离线消息的可靠投递[链接] http://www.52im.net/thread-3069-1-1.html[摘要] 本文作者将以自已IM开发过程中的真实总结,分......
  • Python第四小节随笔(循环)
    ##foriinrange(5):#外层循环可以进行5次i默认从0开始#forjinrange(1,11):#ifj%2==0:#continue#print(j,end='\t')#print()#'''#要求输出1到50之间所有5的倍数#'''##法一#foriinrange(1,51......
  • Python随笔3(流程控制if else )
    #answer=input('你是会员名y/n')##pass是空语句#if(answer=='y'):#pass#else:#pass'''只要是空的就是False'''print(bool(False))print(bool(0))print(bool(0.0))print(bool(None))print(bool(''))......
  • 【专题】2023中国电商营销趋势及增长策略研究报告PDF合集分享(附原数据表)
    全球电商市场在疫情后持续发展,其中,中国市场占据了半壁江山,对全球电商格局产生了重大影响。在中国,三至五线城市的城镇人口众多,约占总城镇人口的65%。随着移动互联网的普及,这些城市构成了纵深市场,其用户规模正在稳步增长。据数据显示,近7.2亿的目标用户占据了整个市场的52%,成为移动互......
  • 【专题】2023年B2B医疗企业营销转型白皮书报告PDF合集分享(附原数据表)
    随着医药企业营销数字化转型的深入,将面临更多的内外数据和数据源。这些问题导致数据断层,难以有效利用,使企业忙于处理数据问题,无暇关注深层业务需求。因此,尽管高呼“数据驱动”,却难以提供切实有效的解决方案和洞察。医疗企业数字化营销的挑战医疗企业在数字化营销过程中面临多方面的......
  • 【专题】2023双碳背景下新型电力系统的应用创新-电网洞察白皮书报告PDF合集分享(附原数
    为实现碳达峰、碳中和目标,构建清洁低碳、安全高效的能源体系成为首要任务。清洁电力作为能源转型的关键,对于保障中国能源安全具有重要意义。为适应新能源的大规模接入,新型电力系统应运而生,以确保电力系统的安全可靠运行。为确保电力系统的稳定运行,提升其灵活性至关重要,这需要各环......
  • 【专题】全球医疗器械报告 2023报告PDF合集分享(附原数据表)
    在全球范围内,医疗器械行业的检验中心和诊断解决方案、牙科、医疗辅助设备等细分领域的企业表现尤为出色。这些企业在新冠疫情期间或是受益于有利的市场环境,或是凭借创新主导的高增长市场策略取得了显著的优势。相反,手术器械细分市场在疫情期间受到了一定的冲击,由于手术量减少,医疗......