OI考试中及平常练习里的一些低级错误总结

2023-11-18

long long相关

1,没开long long /long long开少了。

具体地,可能是未对题目可能产生的数值预估,可能是只写了int的读优,忽略long long。

2.#define int long long出锅。

-1,比如在遍历图的时候,vector的返回值会出现问题,要强行转换(ll)。
-2,main函数类型设置成signed ,避免出现long long main。

3.爆long long 。
毒瘤出题人,要用unsigned long long。。。

double相关

1.double爆精度:
-1,对于小数点后面的精度要求,要记得给eps,至于具体的值。。。看缘分。
-2,对于表示大数并且要用大数比较,double会自动丢失精度,强制转化回long long的时候要手动四舍五入,即手动(+0.5)(long long)。
-3,double的a*=b比a=a*b更容易爆精度(在大数比较的时候有过惨痛教训)。
-4,类似前几次考试的套路,需要用大数比较的时候,一般可以转化为判断是否超过inf之类的分类讨论,即达到一定大小后不需要继续增大,所以不要一来就用double/long double,想一下能不能简化。
2.double与long double 的输出:
double:%lf ,long double:%Lf .

数组相关

1.位移少打一个"<",比如: a [ N < < 1 ] − > a [ N < 1 ] a[N<<1]->a[N<1] a[N<<1]>a[N<1]
2.n,m不同阶,有常数大小的区别,然后往小的开,挂掉。
3.双向边少算,特别是在网络流的一些复杂建图中。
4.倍增数组的两维写反。
5.注意一点,vector的size()函数返回值为unsigned int,size()==0时,如果直接用size()-1判断一些边界并不会返回-1,但是如果保存为int类型时会转化成-1,所以vector存边的时候可以放心大胆的从size()-1遍历到0;
6.WOJ一些题卡ST表,因为本身st表开的下,但是剩余的空间不多,而WOJ需要网站开栈,加起来直接爆空间,运行时会RE。
7.长链剖分的指针写法一定要把空间开正确,正反走要弄清楚,否则蜜汁RE,WA。

lower_bound相关

1.对支持随机访问的STL容器(如vector)可以用普通的lower_bound()函数套,比如:lower_bound(vector a.begin(),vector a.end(),x),复杂度依然是单词O(log),但是对于set这样不支持随机访问,一定要自带的lower_bound,不能用l普通的lower_bound()套。

比如:
set s.lower_bound(a): O ( l o g n ) O(logn) O(logn)
lower_bound(set s.begin(),set s.end(),x): O ( n l o g n ) O(nlogn) O(nlogn)

2.lower_bound()范围内的 数组必须严格单增,范围不能给大,否则可能出现最后一个为0,然后出错。

初始化相关

1.在函数里面(包括main函数和自己定义的其他函数)申明的变量一定要初始化。在全局定义的不需要。
2.注意那些值本身就为0的点。比如:如果dep从0开始编号,且树上加的是双向边,就不能用 ( d e p [ v ] ≠ 0 ) (dep[v]\neq0) (dep[v]=0)来防止重复走点。否则虽不会死循环,但是处理出来的dep数组大小有误,后面可能会出现一些奇怪的错误。
3.全局的定义才是初始化为0。注意static相当于在全局定义了一个变量,每次进入函数不会重置,可能要手动重置。

各种写错,少写

1,返回值为int的函数,忘记写返回值类型,在本地编译可以过,然后CE。。
2,忘关文件名(是输出文件名),我说怎么老是WA来着。
3,文件名打错。不是我英语不好,island我会拼,但是出题人用大写的i充当小写的l。。这时候复制粘贴最保险。
4,在一些最没有存在感的地方写错变量名,调试时间+=inf。比如:把前向星的指针名写错。。
5,namespace里面定义了与全局同名的变量,然后在全局主程序读入了,在namespace的main里面忘记删除这个定义,于是WA。(比如说分段的n,m。但是这个试一试样例就出来了,除非没时间试样例了)
6,把关键模板写错。比如把lct中的splay的rotate写错,调试时间+=inf。

自己YY出错

1.unique()函数的实现方式会改变原序列中重复的数,所以不是简单的把前面重复的丢到后面,不要妄想对unique()之后的总数组求num的cnt之类的,unique完后,之后范围内的能用。(unique可以处理先增后减的去重)。
2.对于一些特殊情况或者边界情况,没有看清楚题意或者没有仔细想就想当然地加一些错误地剪枝特判,然后WA愉快。
3.把离散化后的数组和原排好序的数组傻傻分不清,调试时间+=inf。
4.图论题,未考虑图不连通,没有写for循环dfs。
5.inf开小。特别是一些需要double存大数的dp题。要注意不同的实现方法对inf的大小要求可能不一样。最后发现inf需要开到 1 e 399 1e399 1e399…长姿势了。。以后尽管往大了开inf。(不能加爆)
6.写了取模模板,但是忽略了一开始就是负数的情况。

Conclusion

以上错误,多半都是没想清楚就写代码的结果。
想清楚所有过程再写,写的时候不要浮躁。
比如:码量题拿着一个错误的算法写了一个小时,然后突然把自己叉掉。。。拿着一个错误的贪心标准质疑数据,拿着一个假掉复杂度的算法质疑评测机等等.。。。

PS

当然,出题人拿着错误的标程面向程序出数据的情况偶尔还是有的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OI考试中及平常练习里的一些低级错误总结 的相关文章

  • 【Mysql 存储过程 Or 存储函数 傻傻分不清? 】

    MySQL的存储函数 自定义函数 和存储过程都是用于存储SQL语句的 但是什么时候用什么呢 是不是总是傻傻的分不清 本文来详细的讲一下存储函数 和存储过程 以后再也不会迷糊 存储函数 存储过程 一 异同点 二 存储函数 语法 三 存储过程
  • STM32循迹避障小车制作代码详解(简单实现版)

    感谢几年来大家的支持 看到大家对工程的呼声很高 所以来把工程上传了 大家自行下载即可哈 谢谢大家支持 这个代码是进阶版的 就是可以跑的很快的 和上面博客的主要区别就是这个代码的避障机制并不是做在主main函数里的 是通过外部流程来传参给CP
  • react-native-mapbox-gl在RN中的使用 --工作笔记

    搭建好react native环境后 初始化项目 参见官方搭建环境 这里引入react native mapbox gl也分新旧两个版本 旧的已经不维护了 推荐使用新的 功能模块也比较多 然后引入react native mapbox gl
  • msi文件安装MySQL

    文章目录 步骤如下 1 官网下载msi安装文件 2 运行MySQL installer 3 通过MySQL installer配置服务 4 验证 5 安装目录介绍 6 修改指定的数据文件 步骤如下 1 官网下载msi安装文件 官网地址 上述
  • java进制转换及算法

    本文主要讲各个进制转换的方法 进制转换 前言 一 说明 1 作用 2 本质 3 方法 4 场景 二 实例 1 字符串与16进制的互转 2 16进制字符串与byte数组互转 3 字符串与指定格式的byte数组互转 4 字符串与16进制互转 5
  • 初识kafka --安装启动

    初识kafka kafka的安装及启动 kafka 1 官网下载 2 解压 3 安装jdk 4 配置kafka 4 1 配置server properties 4 2 配置zookeeper properties 5 启动kafka Kaf
  • 使用Aardvark(Total Phase)监测I2C链路

    使用Aardvark监测I2C链路 项目调试实例 1 Aardvark是Total phase公司推出的一款I2C SPI总线的调试工具 其功能包括 作为主 从设备调试I2C或SPI的相关功能 监测I2C总线上的数据 调试GPIO端口等 2
  • 嵩天老师-Python语言程序设计-Python123配套练习测验题目汇总整理

    测验1 Python基本语法元素 知识点概要 普遍认为Python语言诞生于1991年 Python语言中的缩进在程序中长度统一且强制使用 只要统一即可 不一定是4个空格 尽管这是惯例 IPO模型指 Input Process Output
  • 原来 Python 也有重载?

    Python作为一门动态语言 其实并不需要重载 但是如果你愿意的话 可以显式的声明重载 先简单介绍下什么是重载 Overload 重载 overloading 是在一个类里面 方法名字相同 而参数不同 返回类型可以相同也可以不同 提出问题
  • 集合学习总结

    集合 1 java集合框架概述 1 集合 數組都是多個數據存儲操作的結構 簡稱java容器 說明 主要指的存儲是內存層面的存儲 不涉及到持久化的存儲 可以分為Collection和Map兩種 Collection接口 單列數據 定義了存取一
  • Grafana初步总结

    1 grafana安装及问题解决 在官网下载安装包 解压后进入bin目录双击 grafana server exe启动服务 服务启动成功默认端口3000 在浏览器输入http localhost 3000 回车进入登录界面 初始账号密码为
  • seed+transformer+finetune+图文融合+VLP+Prompt Learning整合

    1 Seed 在神经网络中 参数默认是进行随机初始化的 不同的初始化参数往往会导致不同的结果 如果不设置的话每次训练时的初始化都是随机的 导致结果不确定 当得到比较好的结果时我们通常希望这个结果是可以复现的 如果设置初始化 则每次初始化都是
  • Mysql 查询当前时间24小时内的数据

    记录一下mysql查询24小时内的sql语句 where time gt NOW interval 24 hour
  • 无痛涨点:目标检测优化的实用Trick

    本文作者分享了自己在图像预处理调参 模型训练调参等方面中的技巧 并提醒读者要多注意数据的分布和呈现的状态 对卷积网络来说 所学习的就是数据集的数据分布 你的卷积核参数最后形成的也是对数据集中特征分布的认知 写这篇文章就是因为up主的邀请 然
  • 一文解读flowable工作流

    flowable工作流的定义 流程 及项目使用 flowable工作流 1 flowable 1 1 定义 1 2 作用 1 3 流程 2 使用实例 2 1 引入pom依赖 2 2 yml文件 2 3 审批流程xml 2 4 引擎配置类 2
  • 基于STM32c8t6的5路pwm占空比测量实验总结

    测量方式 1 正点原子例程里使用的方式 定时器通道的相关引脚输入捕获上升沿触发中断 在中断函数里 检测到上升沿之后TIM SetCounter TIMX 0 将计数器的值置零重新开始计数 同时将定时器中断触发方式切换为下降沿触发 待到下降沿
  • 【vue3引入高德地图】

    vue3引入高德地图 文章目录 vue3引入高德地图 前言 一 准备工作 1 开发文档 2 添加应用 二 使用步骤 1 npm 安装 2 地图容器创建 3 组件引入 4 js api 安全密钥 5 初始化地图 6 图层 6 1 添加 设置
  • idea 配置详解 (二) 之editor 详解

    3 File Settings Editor 3 1 File Settings Editor General 3 1 1 File Settings Editor General Auto Import 3 1 2 File Settin
  • GitHub网页 详解

    文章目录 1 登陆后标题栏 2 主页左侧部分 3 设置页面 4 组织页 5 仓库页 6 新建仓库 7 解决冲突 1 登陆后标题栏 下面从左到右 从上到下全部讲述一遍 GitHub图标 点击后跳转到登录后的首页 搜索框 输入关键字 查询相关的
  • 在Unity中进行单例的动态脚本加载

    首先调用Unity提供的注释可以在点下Play之后 在游戏真正启动前去执行一些脚本 要注意执行脚本要放在Assets Editor下 RuntimeInitializeOnLoadMethod RuntimeInitializeLoadTy

随机推荐

  • unity暂停和继续按钮

    Unity暂停和继续菜单 目的 在一个游戏场景里设置暂停 并且在暂停后 可选择回到游戏 重新开始的功能效果 添加各种控件 新建一个空对象GameObject 将它命名为 ButtonPauseMenu 放在Canves下 用来放所有暂停功能
  • @Configuration和@Bean

    spring Boot提倡约定优于配置 如何将类的生命周期交给spring 1 第一种自己写的类 Controller Service 用 controller service即可 2 第二种 集成其它框架 比如集成shiro权限框架 集成
  • 堆排序(堆的构造及代码实现)

    简介 java系列技术分享 持续更新中 初衷 一起学习 一起进步 坚持不懈 如果文章内容有误与您的想法不一致 欢迎大家在评论区指正 希望这篇文章对你有所帮助 欢迎点赞 收藏 留言 更多文章请点击 文章目录 一 堆的简介 二 堆的实现 2 1
  • golang 接口和方法探讨

    一 方法简介 方法 Go语言里有两种类型的接收者 值接收者和指针接收者 使用值类型接收者定义的方法 在调用的时候 使用的其实是值接收者的一个副本 所以对该值的任何操作 不会影响原来的类型变量 如果我们使用一个指针作为接收者 那么就会其作用了
  • vue-element-admin基本使用

    vue element admin 是开发后台管理系统的一个比较完备的前端解决方案 本地运行体验 git clone https github com panjiachen vue element admin git 从github上拉取代
  • Axure 9.0.0.3699 授权码

    产品经理主力工具 Axure 在2020年5月26日更新了最新的 3699版本 具体更新如下 很多小伙伴在更新后会出现之前的授权无法使用的情况 如果出现这种情况大家可以通过在产品栈查找相对应的版本进行获取最新的授权码 获取地址 https
  • Vue项目中使用@代替src——并在VScode中开启@路径自动提示

    这篇文章是为了记录一下项目里面经常使用的一个配置 路径别名 我自己个取的名 一般的 路径别名 src components src components 以上的路径别名的好处就是 当项目文件较多的时候 可以避免 这样的一层一层的回溯路径 当
  • findbugs使用_程序员技能与成长:使用静态代码分析工具和代码审查

    使用静态代码分析工具 前面的小节介绍了一些编码规范及最佳实践 如果在编码阶段可以很好地遵循这些规范 并践行最佳实践的话 就可以大大提升代码的质量 提高可读性 降低维护成本等 在很多公司内部及开发团队中 为了保证大家都遵循这些规范 都会有静态
  • SD卡容量变小后怎么恢复

    我是因为给linux板子刷系统 所以导致SD卡内存从16G变成了40MB 恢复方法 1 win r 启动命令行 2 输入diskpart回车 运行DISKPART 3 list disk回车 列出电脑的硬盘清单 4 看看你的u盘是哪一个 选
  • 【数据结构 002】 算法复杂度

    1 算法定义 Algorithm Defintion 2 算法特性 Algorithm Feature 输入 有0个或者多个输入 输出 至少1个或者多个输出 有穷性 算法在执行有限的步骤之后 会自动结束而不会出现无限循环 并且每个步骤都在可
  • 阿里资深架构师三年整理出:Java面试核心知识点原理篇文档

    本文是对Java程序员面试必备知识点的总结 详细讲解了JVM原理 多线程 数据结构和算法 分布式缓存 设计模式等内容 希望读者能通过阅读本书对Java的基础原理有更深入 全面的理解 面试官通常会在短短两小时内对面试者的知识结构进行全面了解
  • win电脑C/D盘清理技巧

    dir AD 查看当前路径下的所有文件夹 1 下载 和安装 磁盘文件占用空间分析工具TreeSize Free 可以查看某个目录下的每个文件 文件夹占用的磁盘空间大小 大文件夹使用win自带 的右键属性查看大小会耗时很久 2 把自己安装在C
  • 【华为OD机试真题】不开心的小朋友- python

    题目描述 不开心的小朋友 输入一个数代表摇摇车的数量 在下一行输入一串数字 用空格隔开 每个数字代表不同的小朋友的编号 小朋友的编号不能重复 每个小朋友只有一个编号 小朋友排队坐摇摇车 如果小朋友离开之前没有摇摇车坐视为不开心的小朋友 同现
  • mysql更新区间的数_解决针对MySQL中对于某一个区间段范围的数据更新的情况

    1 在使用更新update的过程中 我们可能会想要更新比如id段在某一个指定范围内的数据 如果我们是想要更新前面多少行的数据的话可以直接 UPDATE tb name SET column name value ORDER BY id AS
  • 华为OD机试 - 滑动窗口最大和 - 滑动窗口(Java 2023 B卷 100分)

    目录 专栏导读 一 题目描述 二 输入描述 三 输出描述 四 解题思路 五 Java算法源码 六 效果展示 1 输入 2 输出 3 说明 华为OD机试 2023B卷题库疯狂收录中 刷题点这里 专栏导读 本专栏收录于 华为OD机试 JAVA
  • 配置多个TOMCAT

    1 把下载好的tomcat解压到想存放的目录 它不用安装的 在官网下载好 一解压就是了 2 打开电脑的 编辑环境变量 配置CATALINA HOME环境变量如图 我这里装了9和10 先配一个CATALINA HOME9 值是tomcat9的
  • Qt样式表-详解

    一 QT样式表简介 1 1 QT样式表简介 QSS的主要功能是使界面的表现与界面的元素分离 使得设计皮肤与界面控件分离的软件成为可能 QT样式表是允许用户定制widgets组件外观的强大机制 此外 子类化QStyle也可以定制widgets
  • Latex数学公式方程格式总结

    单行公式有自动标号 一般式子之间行距较大 begin equation T tilde nabla lim Delta v rightarrow 0 frac 1 Delta v left oint s T hat n mathrm d s
  • Java接口以及static和final关键字

    Java接口以及static和final关键字 一 static 二 final 三 让final元素可以初始化 不用固定赋值 四 接口 五 抽象方法 六 接口能够创建对象吗 匿名内部类 七 另一实例 开锁 一 static static代
  • OI考试中及平常练习里的一些低级错误总结

    long long相关 1 没开long long long long开少了 具体地 可能是未对题目可能产生的数值预估 可能是只写了int的读优 忽略long long 2 define int long long出锅 1 比如在遍历图的时