信息学复赛用linux,信息学复赛考试技巧及注意事项
竞赛中应该注意
一、会做的题目就一定要全过
二、不会做的题目蒙也要蒙几个点
三、不要拘泥于你脑子出现的第一个算法
四、做完要仔细检查,检查,再检查
五、学会编写极限数据
六、学会考虑出题者的思路
七、细节地方要注意好
八、最重要的:审题
基础要扎实,基本的算法要熟练掌握,不能眼高手低
注意事项
PART 1:写完代码之前
1.保持好的心态
考试前不要过于紧张,可以回忆一下以前考试常用的技巧,易错点和“骗分方法等”
2.审题:
这一点非常重要,一旦审题错误或者理解错误就可能造成你花很多时间写出来的程序WA,如果检查出来了,你浪费的是时间,如果没有发现,你丢掉的是分数和前途
解决方法:写代码前先把题读懂,读透,然后想出算法后才开始写
3.考虑严谨:
这一点也相当重要,如果考虑不严谨就可能被特殊数据卡分[0,100],例如:
NOIP2005过河
这道题很多人都会采用状态压缩,把间隔大于100的石头压缩为距离等于100,然后动态规划,却只能得80分。
这样就丢掉了20分,为什么呢?
当S==T时不能压缩,应该特别判断,这就是丢分原因
解决方法:先要审题,然后要考虑特殊情况和极端情况
4.代码正确:
也就是说,你写代码时要争取一次写对。如果你写的代码有bug,那就需要查错,而查错需要的时间在(0,+inf),考试的时候查错花大量时间是不划算的。
解决方法:写一行,看一行,每写完一行,就考虑一下是否可能写错(for循环边界,格式控制符,i,j混淆......),还要加强静态查错
PART 2:写完代码之后
5.freopen:
文件输入输出是非常重要的一部分,一旦写错一点,就会丢掉[0,100]的分数,且无法挽回
解决方法:(图片摘自:NOI2018笔试题库)
例:NOIP2017DAY2 T1 奶酪(cheese)
你的文件名:cheese.cpp
你的freopen:
freopen('cheese.in','r',stdin);
freopen('cheese.out','w',stdout);
注意千万不要写成chese等其他与要求不一致的单词
6.检查:
非常重要,但不多说,参考PART 1 中的2,3,4
还有注意检查你的程序是否在考试指定文件夹里面,而且不能存在指定文件夹的子文件夹里面
7.防爆(防止爆数组)
NOIP中爆数组是一件很糟糕的事,爆数组就0分
解决方法:数组定义要小于空间限制
用:printf('%.3f M\n',(double)sizeof(arr)/(1<<20)); 查看数组占用空间大小(单位:M)
PART 3 其他
8.头文件
解决方法:不知道CCF开放万能头文件的使用没有,所以建议头文件不要用#include
因此头文件一定要写全,缺少必要头文件就是0分,同时不要用禁止使用的头文件(如:windows.h)
9.数据类型
一定要看题目数据范围,要考虑极端情况int是否足够。有句话说得好:十年竞赛一场空,没写long long见祖宗!不够时要考虑(unsigned) long long甚至高精度
还要防止中间结果溢出!!!
10.增加程序的鲁棒性
鲁棒性是什么呢?(鲁棒是Robust的音译,也就是健壮和强壮的意思)你可以把它理解为程序面对某些极端情况甚至数据不符
合数据范围下仍然可以不RE,得出正确答案
例:NOIP2002T2
这道题题目描述说:所有字符串长度的上限为 20
如果你使用搜索,但是中间数组设的str[21]或其他过小的数组,那你就会丢掉[20,40]的分数,根据题目数据范围数组要设为str[210]或以上才安全
解决方法:在你时间做完题后时间充裕的情况下可以考虑增加程序鲁棒性
11.注意隐性错误(非常重要)
一定要注意以下错误:a.缺少某些重要头文件 b.下标越界 c.中间结果溢出 d.该用long long却用了int
e.待补充
下面说明:
a.比如没有写#include,某些dev c++编译器遇到这种情况不会报错,而如果你使用了scanf,printf,CCF测评你就是0分。我想应该是真的吧,我们的教练曾经就讲述过这样的悲剧。
b.这个错误非常恼火,因为在自己电脑上运行,不严重的下标越界不会引起程序RE,而在很多OJ上,下标越界就RE,这样的错误确实难以发现
c.如果会发生这样的情况请计算时使用强制类型转换
d.比如:选择客栈,如果不分析用了int就会丢分
注意:以下讨论主要是基于windows考试环境考试技巧
1.时间复杂度的选择
根据每道题数据范围选择适当时间复杂度的算法
如:n<=5000,000 就应该选择O(n)及以下的算法,O(nlogn)的算法可能会超时
如果n<=10^9(如NOIP2017DAY1T1) 那就需要O(logn)或O(1)的算法了(推结论)
2.利用Dev C++
如果你的考试环境使用Dev C++那么注意以下:
a.在工具->编译选项 中将代码警告选项调为显示最多警告信息,帮助你尽可能多的发现隐性错误
其他见:信息竞赛:DEV C++常用技巧
3.对拍(选学)
如果想学习这个,请先理解下一块:4.巧用cmd(选学,详情见下面)
所谓对拍,就是写两份程序,一份是用于考试提交的,还有一份用于检查用于提交的代码是否正确
用于提交的那份代码当然要求尽可能多的得分,检查用代码要求答案尽可能完全正确(可以写暴力枚举程序),显然检查用程序很可能超时,因此,我们用它来进行检查,而不是提交。(再次重申:注意文件名和输入输出,还有不要交错了代码!)
对拍是DAOLAO考试时常会考虑的方法(当然要时间足够)
写对拍程序步骤:
a.写数据生成器
就是可以随机生成满足题目条件数据的程序,面对不好写的数据生成器,不建议采用对拍方法(如限制要求苛刻的图,树等)
数据生成器的核心当然是随机数的写法
详细教程链接:NULL(还没有写好,大家可以在网上搜索)
b.写对拍器
我们常用的写法是写一个bat(批处理)程序,请熟记下面的代码:(当然不用记注释)
其中的::是注释用的,相当于C++中的 //
c.写暴力程序
你需要熟悉各种暴力枚举方法:如:子集生成,排列生成,暴力搜索
然后暴力程序一定要写对
4.巧用cmd(选学)
a.启动目标在当前文件夹的cmd
先写一个bat程序:start cmd
没错,就一行,两个单词
但是这个bat文件千万不要保存名称为cmd.bat,否则它会不停启动自己,然后你考试就会受到影响(非常重要)
看,划线的地方就是目标地址
b.使用cmd对比数据
标准数据太长的时候,肉眼观察肯定是一件恼火的事情,这里我们用fc(file compare?)
格式:fc ans1.txt ans2.txt
ans1.txt ans2.txt 代表两个不同的需要对比的文件,但是注意fc比较时不会忽略行末空格
注意ans1.txt ans2.txt必须在cmd的目标文件夹里面
c.启动你的程序
格式:code.exe < in.txt > out.txt
表示启动名叫code的exe程序并输入in.txt的内容,再将输出的内容保存到out.txt 中,这样你不需要用freopen
注意code.exe必须在cmd的目标文件夹里面
5.查错
之前讲了,写代码要尽量保证一次写对,但写错了有没有办法,需要查错
a.先检查算法是否正确,如果算法都不正确,不要慌,再想想,真的不正确那只有重写
b.如果不是算法问题,可以采取两种查错方式:静态查错,输出查错
所谓静态查错,就是讲代码用肉眼重新检查,观察可能错误的地方
所谓输出查错,就是一步一步输出中间结果(也可以用调试工具),按步骤排查错误
如果使用输出查错要注意提交之前将输出中间结果的语句删除或注释掉
6.“骗分”
当然不是靠作弊骗分,是靠“技巧”“骗分”
a.无解情况
例:NOIP2011DAY1T3
这道题很对于初学者很恼火,搜索+模拟不太好写,如果你是一个只要求NOIP150+的人,直接写一个输入数据然后输出-1的程序就可以了,这样可以得20分(注意:这种方法对于NOI一般不管用,NOI现在几乎所有题目每个测试点都有多组数据)
b.打表
对于数据小又容易超时的题,可以采取打表法
详细讲解:https://blog.csdn.net/Hi_KER/article/details/81188352
c.多次贪心
贪心不能解决的问题,可以尝试多次贪心
例如求最小值,你多想几个贪心算法,在贪心得到的答案中选最小的,可能会取得较好的效果
例如一道叫切割网线的搜索+剪枝+贪心题,我靠多次贪心水到了76分
d.推荐阅读:《骗分导论》,有数学竞赛版,信息竞赛版的,去网上搜索可以查到,有多个版本。虽然写作时间久远(2009及以前),但内容和骗分思想还是值得一看
---------------------
本文作者:Hi_KER
信息学复赛用linux,信息学复赛考试技巧及注意事项相关推荐
- 公务员备考技巧、考试技巧、注意事项
要想在公务员考试中得高分就得加快做题速度,要想快速做题就得具备速读记忆能力. 快速阅读的好处是读得快才能读得多.读得快才能理解得好,快速阅读能促进快速记忆和快速理解,因为考生要想读得快就得在短时间内注 ...
- 2016年中山市信息学竞赛暨全国信息学联赛成绩表(普及组)
这一次比赛的成绩出来啦,考的还是不错的,至少近复赛了.加油! 2016年中山市信息学竞赛暨全国信息学联赛成绩表(普及组) 序号 姓名 性别 学校 年级 参赛语种 指导教师 成绩 32 徐熠伟 男 ...
- noip计算机复赛比赛试题,NOIP2018复赛成绩19日可查!
NOIP2018复赛成绩19日可查! 导读:11月10日-11日2018年第24届全国青少年信息学奥林匹克竞赛(NOIP 2018)复赛已经结束,中国计算机学会发布正式发布后续工作时间表,明确各阶段工 ...
- 青少年信息学(计算机)奥林匹克,全国青少年信息学(计算机)奥林匹克竞赛及分区联赛说明...
圣才学习网特整理出"全国青少年信息学(计算机)奥林匹克竞赛及分区联赛说明",供广大考生参考! 经中国科协.国家教育部批准,由中国计算机学会主办的全国青少年信息学计算机奥林匹克竞赛( ...
- 嵌入式linux 考试大纲,《嵌入式Linux》课程考试大纲-武汉工程大学学生进
<嵌入式Linux>课程考试题型与复习大纲 武汉工程大学计工.智能专业同学们请注意,武汉华嵌与武汉工程大学校企合作课程<嵌入式Linux>考试题型与复习大纲公布如下,希望同学们 ...
- 微型计算机字长是不是字节的倍数,2014台湾省WORD全国计算机等级考试二级VB考试技巧重点...
2014台湾省WORD全国计算机等级考试二级VB考试技巧重点 1.在计算机领域中,通常用英文单词"BYTE"来表示( D ) A.字 B.字长 C.二进制位 D.字节 2.微型计算 ...
- 安徽信息技术初中会考上机考试模拟_中学信息技术上机操作考试技巧
中学信息技术上机操作考试技巧 中学信息技术上机操作考试技巧 惠安三中 曾惠忠 [内容摘要] 本文是作者结合两年来福建省中学信息技术上机操作考试情况,对考生容易出现的一些问题加以分析.总结.希望本文的介 ...
- 计算机考试单元格,计算机等级考试技巧在Excel中如何对单元格进行设置?
问:计算机等级考试技巧在Excel中如何对单元格进行设置? 考无忧小编解答: 步骤一:选中要设置的单元格,右击,出现下图对话框. 步骤二:点"设置单元格格式"功能,出现下图对话框, ...
- Linux日志安全分析技巧
0x00 前言 我正在整理一个项目,收集和汇总了一些应急响应案例(不断更新中). GitHub 地址:https://github.com/Bypass007/Emergency-Response-N ...
最新文章
- 怎么去大蒜味(一定要看拉) - 生活至上,美容至尚!
- 安宫牛黄结转周期错误
- 《浪潮之巅》读书笔记汇总
- bashrc与profile的相关知识
- 成功解决raise Py4JError py4j.protocol.Py4JError: py4j.protocol.Py4JError: Could not find py4j jar at
- 利用Navigation Timing测量页面加载时间
- 超级计算机和人比,和超级计算机相比,人类的大脑很弱吗
- 如何看待2018年小米雷军98.18亿年薪?
- VFP参考资料word版
- CGCKD2021大会报告整理(2)--因果推断与因果域适应学习
- c#基础(一)之内存管理
- 安卓zip解压软件_破解软件之“安卓压缩包zip或rar密码破解(116位数任意破)”...
- linux内核打补丁步骤
- mysql2008jar包下载_sqljdbc.jar2008
- springMVC实现图片打包下载
- 山东农村商业银行计算机笔试,2021年山东农村商业银行笔试备考:计算机科目高分复习方法...
- 报错:Torch not compiled with CUDA enabled看这一篇就足够了
- 计算机版音乐教学反思,音乐教学反思(通用3篇)
- VR相机市场杀出一匹黑马,SONICAM备受众筹用户追捧
- [教你做小游戏] 用86行代码写一个联机五子棋WebSocket后端
热门文章
- 【CC3200AI 实验教程12】疯壳·AI语音人脸识别(会议记录仪/人脸打卡机)-语音采集
- 双馈风力发电机DFIG滑模控制SMC MATLAB/Simulink仿真模型 采用PI调节器为外环滑模控制器SMC作为内环控制,跟传统的双PI环相比,功率的很随性更好
- 3d打印服务武汉迪万定制模型
- GopherChina-2019 观后感
- 如何将word单词表中的汉字/英文删掉
- 用直流电机测转速——测速发电机标定实验
- Elasticsearch之批量处理。
- 简述几种人脸识别的主要方法
- MATLAB GUI笔记(八):列表框的使用
- LR(逻辑回归)介绍文档