首页 > 其他分享 >ACM模式机考准备指南

ACM模式机考准备指南

时间:2023-07-01 22:46:10浏览次数:50  
标签:指南 输入输出 ACM 机考 算法 https 格式 com 考试

1 熟练掌握格式化输入输出方法

ACM模式需要题目要求,按照规定的格式自己手动写输入和输出的代码,如果没有充分准备,考试的时候就有可能会在输入输出这块卡很久,浪费考试的时间,反之,如果能够掌握各种格式的输入输出方法,则可以让我们在考试的时候快速完成输入输出代码的编写,节省出更多的时间思考和编写逻辑代码。

牛客网有专门练习输入输出的练习题,列举了几种常见的输入输出格式,可以先通过该练习,掌握基本的输入输出模板。

OJ在线编程常见输入输出练习场

还有一些常见的输入输出格式,练习题中没有的,列举如下,可以自己在本地环境练习。

  • 多组时间格式,第一行为组数,第二行开始每行为一组时间,格式为 hour:min:s.ms
2
12:39:1.20
01:23:34.001
  • 不定长整型数组,间隔符为逗号
34,-29,39,21,53,29
  • 同一行分组输入,组数不定,分号间隔,每组元素格式固定,逗号间隔
10001,90;10002,80;10006,100;100003,69;19293,19;
  • 同一行分组输入,组数不定,空格间隔,每组元素格式固定,斜杠间隔
1/N 2/Y 3/N 4/Y

考试的时候还有可能碰到很多不一样格式的输入,不可能一一列举,但万变不离其宗,格式数量固定则使用格式化方式逐行输入,数量不固定则使用循环逐个输入保存,字符串要善用字符串拆分函数等等,在平时练题的时候可以多总结,复杂的输入多练习几遍,记住一些固定的模板,自然就熟练了。

2 掌握数组、字符串常用操作方法

算法考试的题目,大部分的题型多多少少都涉及数组、字符串的操作,因此,熟练掌握数组,字符串的操作方法,可以有效提高做题时的编码能力。

现在很多高级语言都提供了类似数组,但又比数组要强大的数据结构接口,如 C++ 的 vector,Python的 list,掌握这些数据结构的使用方法,那在做题时就能很方便地处理数据,
C++ vector 学习链接:
https://www.runoob.com/w3cnote/cpp-vector-container-analysis.html
Python list 学习链接
https://www.runoob.com/python3/python3-list.html

字符串操作学习链接
C++
https://zhuanlan.zhihu.com/p/553061732?utm_id=0
Python
https://www.runoob.com/python3/python3-string.html

3 掌握考试用编程语言快速排序的方法

如C++的 sort()函数,python的sorted函数等,算法题经常会用到,熟练掌握其数组(列表)排序、字符串排序、复合结构排序的用法。
推荐学习链接
C++
https://www.cnblogs.com/junbaobei/p/10776066.html
Python
https://www.runoob.com/python3/python3-func-sorted.html

4 掌握一些常用算法的框架模板

常用的算法技巧一般有二分查找、双指针、BFS、DFS等,这些都有相对固定的模板,掌握这些模板,当遇到的题目可以用其中某种算法解决时,就可以将算法模板直接默写出来,既可以节省时间,同时也能减少错误。

推荐学习链接:
labuladong 的算法小抄 | labuladong 的算法小抄 (gitee.io)
如果只是应付考试,可以只看里面相关算法技巧相关的章节,同时做下里面推荐的题目,如果想系统地学习算法。建议将labuladong的算法小抄都学习一遍。

二分查找
https://labuladong.gitee.io/algo/di-ling-zh-bfe1b/wo-xie-le--3c789/
滑动窗口
https://labuladong.gitee.io/algo/di-yi-zhan-da78c/shou-ba-sh-48c1d/wo-xie-le--f7a92/
快慢指针
https://labuladong.gitee.io/algo/di-yi-zhan-da78c/shou-ba-sh-48c1d/shuang-zhi-fa4bd/
BFS
https://labuladong.gitee.io/algo/di-ling-zh-bfe1b/bfs-suan-f-463fd/

5 常考题型和相关题目
华为机试题目
https://www.nowcoder.com/exam/oj/ta?page=1&tpId=37&type=37

题型 题号
数组 HJ97,HJ105,HJ3,HJ64
字符串 HJ13,HJ18,HJ39,HJ19,HJ71,HJ29,HJ85
排序 HJ68,HJ6,HJ30,HJ31,HJ34
队列 HJ24,HJ88
链表 HJ90,HJ48,HJ51
HJ50、HJ54、HJ70
二分法 HJ107
BFS HJ43
DFS HJ67

6 模拟考试

当觉得自己练习比较充分,可以先在牛客网上模拟一下考试,方法就是在牛客网的比赛日历里面,找以前的比赛,创建重现赛,就可以模拟考试了,有计时的那种。如果可以在指定时间内做出3道题以上,实际考试的时候问题就不大了,建议多模拟几次,可以让自己先适应考试感觉,在真正考试时就没那么紧张了。创建重现赛的方法如下:

点击以下链接进入比赛日历
https://ac.nowcoder.com/acm/contest/calendar

选择已经进行过的比赛,单击后点击 进入比赛按钮

点击创建重现赛。即可参加参加比赛了

7 考试时的一些注意事项

1、善用打印进行调试,因为考试一般时不允许切屏的,考试时无法使用本地IDE调试,因此调试代码时,最好可以在容易出错的地方加打印,展现其执行过程,能更好的进行问题定位,用好打印调试,多数情况下其实比Debug调试更有效率

2、使用全局变量时一定要初始化,因为用例不止一个,当执行下一个用例时,全局变量没有初始化的话,里面存储的就是上一个用例的过程值,会影响到当前用例的执行结果,当用例不全对时,一定要想想是不是这个原因

3、考试的时候,能用暴力法解决的问题,可以先用暴力法解决,可能会有用例超时,但超时的用例往往是少数的,你可以得到大多数的分,这样可以避免在思考解法上花太多时间,后面时间充裕的话可以再回头想下别的解法。

4、先阅卷,再选择先做哪道题。第一道题不一定就是最简单的,一定要先看完所有的题目,先做你感觉比较简单的题,快速拿下后再去做第二道题。

标签:指南,输入输出,ACM,机考,算法,https,格式,com,考试
From: https://www.cnblogs.com/yanyuzuixin/p/17520093.html

相关文章

  • markdown终极指南
    markdown是我一直在用的一种语法,本文想把他的各个方面的特性系统的介绍一下,方便去做一些查阅和学习。介绍Markdown易于阅读,方便创作web文档,利于各平台无缝分发。Markdown语法灵感最大的来源还是纯文本email的格式,完全由标点符号标签组成的纯文本。Markdown文件应该......
  • 学习IDA权威指南-反汇编工具
    分类工具file通过检查文件中的某些特定字段来确认文件的类型类似的有cygwin使用cygwin工具查看结果PE-Tools用来分析windows系统中正在运行的进程和可执行文件的工具。PEID识别构建某一特定windowsPE文件二进制文件所使用的编译器。IDA 编辑器等等。工具非常多,要用到再学习使用......
  • 2023ACM暑假训练day 6-字符串
    目录DAY6字符串训练情况简介题DAY6字符串训练地址:传送门训练情况简介题题意:思路:......
  • 2023ACM暑假训练day 5-单调队列 单调栈
    目录DAY5单调队列/栈训练情况简介A题B题C题D题E题未出,题解补F题未出,题解补G题看了cf数据,得wa启发补充内容单调栈MonotoneStack单调栈矩形系列字典序最小贡献法单调队列MonotoneQueueDAY5单调队列/栈训练地址:传送门训练情况简介早上:A、B、C、D题下午:E题(未......
  • Prisma 避坑指南!
    环境变量问题datasourcedb{provider="mysql"url=env("DATABASE_URL")}npxprismadbpush默认取.env配置文件,那多环境怎么处理?增加.env.test.env.prod等文件,安装dotenv-cli,执行dotenv-e.env.test--npxprismadbpush来指......
  • Git命令详细使用指南
    Git命令详细使用指南Git是一种广泛使用的版本控制系统,它可以帮助开发人员跟踪变更、协作项目和有效管理代码仓库。无论你是初学者还是有经验的用户,理解各种Git命令对于高效的代码管理至关重要。安装根据Git官方网站(https://git-scm.com)上提供的说明下载和安装Git。安装完成后,你......
  • 【Android Kotlin】全网最全的Android Kotlin入门教程指南,入股不亏
    前言2017年的谷歌大会上,Kotlin被指定为官方的Android开发语言,从长远的角度来看,Kotlin语言是作为Android开发者必须要掌握的一门编程语言。Kotlin编程语言极易上手,而且它不像Java那样代码繁琐,Kotlin代码更简洁,可读性也更强,可以花更少的时间来编写和理解代码,极大地提高了工作效率,不仅......
  • 动态规划入门指南
     动态规划入门指南动态规划是一种解决复杂问题的方法,它可以将一个问题分解为若干个子问题,并利用子问题的最优解来构造原问题的最优解。动态规划适用于具有重叠子问题和最优子结构的问题,即子问题之间有相互依赖的关系,且子问题的最优解可以推导出原问题的最优解。本文将介绍动态......
  • 掌握 Linux awk 命令全面指南
    掌握Linuxawk命令全面指南聆听世界的鱼 Linux公社 2023-06-2809:10 发表于浙江收录于合集#awk命令1个#awk3个#Linux命令85个#Linux742个击上方蓝字 ●关注Linux公社    本文提供了关于Linux中awk命令的全面指南,介绍了它的用法和常见参数。我们深......
  • 可观测性是什么? 入门指南
    如果您之前对可观测性重要性,益处,以及组成不甚了解,本文是一个合适的指南手册。什么是可观测性?可观测性被定义为根据系统产生的输出数据(如日志,指标和链路追踪)来衡量当前系统运行状态的能力。可观测性目前被广泛的用于提升分布式IT系统的稳定性(系统复杂度成倍提升,在故障或者异常......