NOIP2017赛前考试注意事项总结
考前:
考试前把读入优化和库以及对拍文件打好做好准备工作,另外注意放松心态,太紧张了肯定考不好··将自己的注意力集中起来
考场策略:
考试的基本策略是对每于道题先想个20分钟,如果想不出个靠谱的方法就把赶紧暴力打了一定要打暴力,想不出正解要打暴力,想出了正解对拍也要打暴力,而且把暴力打了之后心里都踏实得多··起码保底了,打完后再想正解.
题目思考:
先要确定大体方向:模拟(往往只有第一题),策略(贪心等),数学,数据结构,图论,dp,字符串,树,二分,三分,搜索,(多半会加上剪枝折半记搜或者迭代加深)
合理利用并查集,哈希,倍增,差分,链表,优先队列,dfs序,桶,单调队列,单调栈等辅助算法
充分利用题目给的数据范围考虑可能用到的算法,毕竟n^2,nlogn,nlogn^2,n还是比较好判断的
不要一看到数据结构就往线段树上面想,可能会没有那么'麻烦'
dp的时候多想想平时自己用到的套路,如最大子串和,最长不下降序列,最长公共子序列,各种背包问题,树形dp考虑求树的直径,重儿子,最大次大值等,区间dp的枚举断点,另外复杂度如果不对要考虑dp优化(滚动数组或者决策单调性),有时也会用数据结构优化dp
图论的话一般在比较简单的情况下只会考最短路和最小(大)生成树,和拓扑排序,tarjan求强连通分量边双连通割点,但图论题比较难的一点是通过条件间的逻辑关系转化成图论题,这时除了上述算法以外常常会用匈牙利差分约束等算法解决
字符串本身算法很少,只有kmp,哈希,trie,ac自动机,manecher,因此有时它会和其他算法一起考,如dp;
想题的时候思维要灵活点··如果往一个方向想一直没进展的话就要考虑放弃了
有时候想不出正解时可能暴力就是正确的,自己在计算复杂度时可能考虑了许多多余的情况(所以要一定打暴力啊)
鉴于在NOIP考场上它算法可能不会考多难··但肯定会用思维难度来弥补,如果可以适当地用NOI的一些算法来降低思维难度的话可以考虑考虑
常用套路:
倒插点/边,乘法转对数,xor的高低位贪心,平均数转最长和大于0,加边权求特定集合最小生成树,拆点,枚举边计算贡献,
代码编辑:
打代码时一定要集中精神,不然很容易出错··如果打完代码后还是调试半天找出很多错误说明打代码时肯定没认真···
打代码前要想想这道题是否有什么边界条件还没有考虑.分类讨论是否全面,有时因为一个边界条件可能就错完了,打代码时也要好好考虑,比如mod的时候如果是负数要加起来,用到除法的时候除数是否考虑了0,是否需要判断无解情况,有没有可能访问了非法的位置(爆数组或者访问了负的位置,用桶的时候尤其注意),有没有可能爆int,有没有可能double写成了整数型
注意自己的算法是否爆空间,用cout<<sizeof()/1024/1024判断判断
如果担心爆int就开long long,不要偷懒!!
用mod的时候注意mod透没有
INF用0x3f3f3f3f很优秀!
尽量保证自己代码的简洁度,能不分类讨论就不要分类讨论(当然是在保证正确性的情况下),有时如果要判断某些边界情况很麻烦的话可以在边界加上不影响答案的元素,比如在splay的题中我们常常在里面放一个-inf和一个inf··平时就要多参考其他人写的比较优美简洁的代码··不然调试的时候可能会晕
注意多组数据下的清0操作
合理使用stl中的文件,如vector,queue(queue,deque,priority_queue),set,map(这玩意儿有点不靠谱··能手打hash表还是手打吧)
如果变量很多的话变量名就打长一点,好辨别···实在不行打拼音··
打代码时注意自己是否用到了非法的变量名,像y1,x1,next,index,hash啥的一定要注意··如果平时用这些变量名用习惯了的话可以在第一行打一个”改变量名“,这样的话编译的时候能提醒自己
打完后可以加个register提高代码速度,(有可能会re,加完后运行程序看一看)
不要读入剪枝!!!
看看是否用到了O2优化,用了的话用自己编辑器开O2跑一跑程序
考后检查:
考完后重点再次检查上述的错误,数组开小没?是否需要开int?是否需要开double?是否需要改变量名?是否需要考虑边界?
最后好好检查文件输出输入,错了就完了··
NOIP2017赛前考试注意事项总结的更多相关文章
- [NOIP2017赛前复习第二期]复赛考试技巧与模版-普及组
考试技巧 1.拿到考卷首先通看题目,按自己感觉的难度排序(普及一般是1-2-3-4了~还是相信出题人不会坑我们的2333) 2.一般来说,普及组前两道题比较简单(大水题啊233~),但是通常坑很多,例 ...
- NOIP2017赛前模拟11月6日—7日总结
收获颇丰的两天··· 题目1:序列操作 给定n个非负整数,进行m次操作,每次操作给出c,要求找出c个正整数数并将它们减去1,问最多能进行多少操作?n,m<=1000000 首先暴力贪心肯定是每次 ...
- NOIP2017赛前模拟11月4日总结:
第一次挂0·····有点感伤···主要是因为时间分配太不合理了··花2个半小时搞第一题最后还wa完了··第二题很简单花了30分钟打完但没打对拍结果wa完···第三题暴力可以拿20分的但没时间打了··· ...
- NOIP2017赛前模拟(5):总结
题目: 1.刮刮卡 已知n(n<=1000000)张刮刮卡按顺序排列,刮开可以获得B元现金和B个积分,购买刮刮卡需要A元,某人若按照顺序刮开的话··当B的总和小于A时便会停止刮卡(即花出去的钱多 ...
- NOIP2017赛前模拟(4):总结
题目: 1.打牌 给定n个整数(n<=1000000),按照扑克牌对子(x,x)或者顺子(x,x+1,x+2)打出牌···问最多可以打出多少次对子或者顺子?牌的大小<=1000000 2. ...
- NOIP2017赛前模拟(3):总结
题目: 1.购买板凳(100) 大意:区间修改最后查询全局最大值; 2.新排序(40分暴力) 大意:给一串长度小于100000的数列···每次操作找出序列中严格小于其左边的数字或者严格大于其右边的数字 ...
- NOIP2017赛前模拟11月2日总结
分数爆炸的一天··但也学了很多 题目1:活动安排 给定n个活动的开始时间与结束时间··只有一个场地··要求保留尽量多的活动且时间不冲突···场地数n<=100000 考点:贪心 直接将结束时间按 ...
- NOIP2017赛前模拟10月30日总结
题目1: n个人参赛(n<=100000),每个人有一个权值··已知两个人权值绝对值之差小于等于K时,两个人都有可能赢,若大于则权值大的人赢···比赛为淘汰制,进行n-1轮·问最后可能赢的人有多 ...
- NOIP2017赛前模拟1:总结
题目: 1.造盒子 题目描述 企鹅豆豆收到了面积为 K 的一块橡皮泥.但是他没有合适的盒子来装下这个橡皮泥.所以他打算造一个盒子. 制造台是有方形网格的平台,每个小正方形边长为 1 .现在豆豆有两类木 ...
随机推荐
- LeetCode962. 最大宽度坡
问题:最大宽度坡 给定一个整数数组 A,坡是元组 (i, j),其中 i < j 且 A[i] <= A[j].这样的坡的宽度为 j - i. 找出 A 中的坡的最大宽度,如果不存在,返 ...
- 服务器缺少vcruntime140.dll,无法运行
Redis用了一段时间,有的时候,调试的时候,RedisDesktop是个不错的工具 当我想在服务器上安装的时候,才发现服务器64位的环境里面运行出错了 百度上有共享dll出来的,但是基本都没法用,虽 ...
- tp5.0初入
1.目录结构 |-application 应用目录 是整个网站的核心 |---|---index 前台目录 |---|-----|---controller 控制器 |---|-----|---mod ...
- swoole学习(一)----linux安装swoole
1.下载swoole 登录swoole官网 https://www.swoole.com/ 点击下载,找到github或者其他链接下载下来 放到虚拟机上. 也可以使用虚拟机下载 2.登录虚拟机 推荐使 ...
- python -- configparse读取配置文件
在开发过程中,有的时候需要将一些参数写入到配置文件中,这样在改动一些相关信息时,可以直接在配置文件中进行修改. 而在python中,可以通过内置模块configparse对标准的配置文件进行读取. 配 ...
- Pandas 数据结构Series:基本概念及创建
Series:"一维数组" 1. 和一维数组的区别 # Series 数据结构 # Series 是带有标签的一维数组,可以保存任何数据类型(整数,字符串,浮点数,Python对象 ...
- 3、springboot配置文件占位符
RandomValuePropertySource:配置文件中可以使用随机数 ${random.value}.${random.int}.${random.long}.${random.int(10) ...
- POJ:1703-Find them, Catch them(并查集好题)(种类并查集)
Find them, Catch them Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 49867 Accepted: 153 ...
- 5 Django-1的路由层(URLconf)
URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于客户端发来的某个URL调用哪一段逻辑代码 ...
- SpringMVC---web.xml配置详解
web.xml中需要配置的内容 1.配置监听器<listener> 它有两个监听器: 1). <!--配置文件加载监听器--> <listener> <lis ...