NOIP赛前模拟总结
来源:互联网 发布:阿里云备案幕布尺寸 编辑:程序博客网 时间:2024/05/16 12:37
前言
NOIP虽然是一个比较基础的赛事,但是十分的重要,失足千古恨……
所以,就需要NOIP赛前模拟。
在这么多NOIP模拟中暴露出来的问题很多。
所以就需要总结。
问题归纳
对拍
作为一个Oier,必须要会打暴力,比赛时候每道题都要打暴力,也就是说每题都需要对拍—->
1、不对拍,会非常的虚,对后面的心情影响很大。
2、一次性答完题的漏洞一般不会为零。
3、一般对完拍之后,这道题目就稳了(因为两个程序同时打错的概率很小)。
那么要怎么对拍:
1、打完一题就立刻对拍,不然对后面的影响很大。
2、从最暴力的(或最短的)拍开始打起,一般会程序的漏洞会随着能切的分数成正比。
3、如果正解实在打不出来,可以用把拍优化到最大限度交上去。
4、拍还是可以对分的,这是很好的保险。
空间
上限
那么辛苦的程序打出来的程序,如果爆了空间,那么一切为零。
long long要乘8,int 要乘4,bool要乘1,char要乘1,所有的加起来除以(1024*1024)小于上面给出的那个东西,就可以了。
下限
开小了也是不行的:要注意的是bfs的队列、倍增数组后面那一项、线段树真的要乘4(实在不行用一个高级的方法是乘2的)、桶的大小、顺着的DP开滚动、质数判断数组、无向图的边集数组……注意看看范围。
必须要注意!!!!!!!!!!!!!!!!!!
时间的计算
理论上说,一秒是可以跑1亿次的(常数也要考虑进去),但是一般常数的代码下实测只能到50000000次左右。
首先
看最大范围,思考自己程序的时间复杂度:
1、在5~100,奇妙的暴力,时间不可估量。
2、在5~10,有可能是
3、在10~25,有可能是
4、在50~150,可能
5、在100~500,考虑一下
6、在500~1000,看看有没有
7、1000~10000,
8、10000~60000,
9、60000~100000,
10、100000~300000,
9、100000~1000000,
11、1000000~50000000,过了一百万,带一个
12、500000000~
时间跑的慢,可以用一个变量去在程序中不断的+1,来看看到底是哪里跑的慢,针对一下。
像一些求最优值的暴力,如果运行次数大于一个阈值,那么就不运行并输出当前的最优答案,因为过不了也就过不了,为什么不碰碰运气输出看看对不对?
常数的优化
常常跑出来的时间和自己预计的不一样,一般都是常数太大的结果。
1、如果最后要mod mo,如果是加法的话,如果≥mo,那么就-mo,这样常数会小一点。
2、max最好自己打
3、除2,用用位运算
……….(NOIP能用到的机会也不多)
思路要清晰
有好几次题目都是,第一眼想到了一个方法,然后想都没想就直接打,结果打了半天发现是错的。还有一次明明方法是对的,结果不小心打错了就放弃了这个方法。
事发原因:对于解题的思路不清晰。
解决方法:
1、想题的时候,就把思路的流程写下来。
2、如果得出来的是结论,那么一定要在草稿纸上先用数据(或用证明)结论的正确性,然后再打。不要想着用正解去证明结论,这样错误的概率很高。
3、如果有些草稿纸上得出来的结论很难证明,可以尝试用暴力去算一算(手算可能会出错)。
4、用数据去模拟一下流程,然后再打题。
把握时间
虽然只有三道题目,但是只有三个半小时,又要看题,又要想题,又要打正解,又要对拍……如果不把握时间,挂掉的可能性会很高。
1、NOIP一般想题结束要用20~30分钟会比较稳,想的时间太长打题会很虚(调程序是很浪费时间的)
2、做完第一题,正常的情况下。对于我来说是比赛经过了50分钟左右(从8:30开始就是到9:20~9:30左右要做完第一题)
3、做完并拍完第二题最好是10:10~10:30这段时间,因为只留一个小时做最后一题明显是不够的。
4、在最后一小时要预留10~15分钟的时间检查,不要把时间逼的太紧,因为越接近结束时间就会越紧张。
最尴尬的情况就是打到第二题中发现第二题的方法是错的,那么就要重新想(这样会不清楚时间的流逝),所以要不就是一开始就想好,要不就是在上面计算的时间内结束做题,这样能比较好的把握时间。不能因小失大。
如果最后一题真的比较难做,一定要保证前面两题稳稳的情况下再去打第三题的正解。
保持心态
1、需要对拍
2、想题是要稳
3、需要把握时间
4、如果脑袋真的有点累的话,那么就懒懒的调试一下(或再去对对拍),这样很舒服。
不可错之错
1、文件名打错——刚拿到题目的时候就把所有要建的文件建好,所有文件名打好
!!注意:文件名的大小写,空格之类的!!
2、c++程序不能开奇奇怪怪的库,不要把出数据的ctime库开过去。
3、出数据的自己打一个可以出大数据的函数。
4、结尾打return 0
5、多组数据要清空
6、不要受旁边人的影响
7、不明白的要问
8、分段的地方要明确,最后打个下划线标注一下
RP++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- NOIP赛前模拟总结
- NOIP赛前总结
- NOIP赛前总结
- NOIP赛前总结
- NOIP赛前总结
- 4.23 GDOI赛前模拟 总结
- GDOI2016赛前模拟4.23总结
- NOIP赛前常用模板代码总结
- NOIP 2017 赛前集训总结 C++版
- 2016.4.23 GDOI 2016 赛前模拟 总结
- [2017.4.15] 【JZGDOI赛前R1】模拟总结
- noip赛前小结
- Noip模拟总结
- NOIP模拟8.12总结
- NOIP模拟20150904总结
- NOIP模拟9.19总结
- NOIP模拟10.27总结
- 10.28NOIP模拟总结
- 圆形图片
- 【noip2016集训总结】
- 进程与线程及其区别
- 泛型(genericity)
- mysql 批量更新与批量更新多条记录的不同值实现方法
- NOIP赛前模拟总结
- Ant通配符
- 深入理解 RecyclerView 系列之一:ItemDecoration
- 第七篇 zabbix监控本机
- win10+vs2015编译osg 3.4.0
- ReactiveCocoa 中 RACSignal 是如何发送信号的
- From表单提交刷新页面?
- log4j.xml
- [hive]动态分区和静态分区