• 首页
  • 教育理念
  • 文章专题
  • 编程教程
    • – Scratch编程教程
    • – AppInventor编程
    • – Python编程教程
    • – NOIP信息学奥赛
    • – C/C++编程教程
    • – JS编程教程
  • 少儿编程学院
    • – 在线课程
    • – 学院名师
    • – 动态资讯
  • 少儿编程社区
    • – 在线编程
    • – 编程作品
    • – 专题创作
  • 更多
    • – APP客户端
    • – 关于我们
    • – 寻求合作
    • – 少儿编程联盟
投稿 登录 注册
  • 首页
  • 文章专题
  • 教育理念
  • 编程教程
  • 少儿编程学院
  • 微信公众号
  • APP客户端
少儿编程学院
少儿编程教育-微信公众号
首页 › 编程教程 › NOIP信息学奥赛 › 正文
NOIP信息学奥赛信息竞赛编程竞赛

2017NOIP提高组复赛冲刺指南

主编主编 NOIP信息学奥赛 2017-09-16 2,081 0

2017年NOIP初赛已经落下帷幕,祝愿大家都能如愿进入NOIP复赛.由于初赛分数不计入复赛,所以复赛的上机测试才是真正决胜的环节,那么如何利用好这最后一个月的时间呢?此时做什么是最有效的?

了解命题趋势和必得分数(以北京为例)

2017NOIP提高组复赛冲刺指南-少儿编程教育网NOIP逐步淡化对算法的考察,更侧重考察思维.已经不是说学习的算法越多,成绩就会越好.最近2年考察的模板算法很少,只有LCA有背的价值,像二分,dfs原理都非常简单,理解即可.信息竞赛中最适合考察思维的莫过于动规与贪心,由于贪心要么太显然大家都看得出来,要么太难只有极少数人能发现,所以贪心的区分度较低,因此动态规划理所当然的成为了NOIP复赛的宠儿,基本每年都会有1道动态规划的题目,甚至一年2道.最近动规题目的考察也不再是最基本的背包问题,像16年与期望相结合与状态压缩相结合,都进一步加大了思考的难度.

一般来说,在北京拿到320分,就能获得一等奖.如果1,2题难度高,分数线会有小幅下降.我们来简单算一下得分,两天的第1题拿满分,第2题第3题各拿30分,总共得分320分,一般是可以压线一等奖的.也就是说2道第一题拿稳,再保证其他题暴力的分数都拿到手就是一等奖.而如果第1题丢了40分,这就需要有道题得分从30分变到70分,而2,3题得70分的难度远远高于第1题拿满分的难度.因此比赛中没有失误比什么都重要.

这些问题你存在吗?

1.题目编程量少

算法学习了很多,但不熟练,甚至学习过后都没有亲自写过.看似学了不少知识,但只知道大概,所以限时编程就各种出错,短时间内也调试不出来.如果想获得一等奖,一般有价值的题目需要刷过200道左右,如果想进省队,有价值的题目至少刷过500道.不少金牌选手的刷题数量都不低于2000道.

2.一些基本函数不会使用甚至没听说过

上课期间还有人在手写快速排序,完全是在浪费时间,还增大出错风险.了解常用函数会让编程更加简洁并减少出错率.至少以下函数希望同学能了解会用: sort, min, max, swap, abs, fabs, memset, make_heap, pop_heap, push_heap, sort heap.再简单举个例子,去年day2第2题蚯蚓,加个堆维护最大值,时间复杂度O((m+n)log(m+n)),都不需要思考轻松拿到85分.而堆在STL中是可以直接调用的,一共写完不过40行.
# include <cstdio>
# include <cstring>
# include <algorithm>
# include <cmath>
# define FOR(i, a, b) for(int i = a; i <= b; ++i)
using namespace std;
const int NR = 7100000;
int n, m, q, u, v, t;
int a[7101010];
void solve()
{
make_heap(a, a + n);
FOR(i, 1, m){
const int tmp1 = a[0] + q * (i - 1);
const int tmp2 = (long long)tmp1 * u / v;
pop_heap(a, a + n + i - 1);
a[n + i - 2] = tmp2 - q * i;
a[n + i - 1] = tmp1 - tmp2 - q * i;
push_heap(a, a + n + i - 1);
push_heap(a, a + n + i);
if(i % t == 0) printf("%d ", tmp1);
}
puts("");
sort_heap(a, a + n + m);
for(int i = n + m - t; i >= 0; i -= t) printf("%d ", a[i] + q * m);
puts("");}int main(){
freopen ("earthworm.in", "r", stdin);
freopen ("earthworm.out", "w", stdout);
scanf("%d%d%d%d%d%d", &n, &m, &q, &u, &v, &t);
FOR(i, 0, n-1) scanf("%d", &a[i]);
solve();
return 0;}

3.不了解STL容器瞎用

可能是之前看过某些题中这些结构用起来很厉害,就老想使用这些结构,比如vector, deque, list, stack, queue, priority queue, set, map.建议还未完全了解这些容器性质和成员函数前先不要使用,否则往往不如手写数组运行速度快.先把数组学好,数组更好操控,也完全能实现这些功能.

4.模板化算法

套路性优化掌握不熟练.20分钟写不出来二分答案是非常有问题的.写一个成形的算法模块,应该不需要思考,纯粹是敲代码的时间,比如 二分, dfs, bfs, Floyd等都是最基本最基本的算法,考试时闭着眼睛都得敲出来.套路性处理比如, 最大值最小或最小值最大应该考虑二分答案, 多次求区间值考虑差分前缀和, 需要logn可以尝试加个堆优化,或者倍增等等.

5.细节考虑不周

比如某个数组大小开小了,多次输入时数组没清零,判断条件是否有等号,多个判断是否需要else if,题目输入n,m,v,e,编程时是否记清每个含义不用混,3个小于10亿的数相加取余时是否在算完2个的和时取余了.这些都是细节,但如果有一点没注意可能就少了30分,甚至这道题一分没有.

减少出错,树立自信

在这最后的一个月,没必要花时间再看自己不会的算法,只有非常小的几率正好考中你学的算法,收益极低.如果还没做过近3年NOIP真题,优先把真题做一遍,真题的难度把控和算法要求远比模拟题好,一定要限时完成,最好就在周六日上午8:30-12:00,感受考试时间,只有在限时的环境下才能得出最适合自己的时间分配策略.本站也会持续更新NOIP复赛历年试题和复习知识点总结,欢迎大家关注.如果已经做过近3年真题,可以选择图论或动态规划之一重点刷题,一个月的时间是可以做20题以上的.不要看题解,独立思考,编完检查完毕再提交,尽量一次性AC,不要反复提交通过评测网站查找错误,毕竟考试只有一次机会.最后的最后,上考场前一定要相信自己,题目万变不离其宗,丰富的做题经验会让你考试中游刃有余.

喜欢 (0)
打赏
  • 打赏支付宝扫一扫
  • 打赏微信扫一扫
微博 微信 QQ

微信扫一扫,分享到朋友圈

微信公众号
编程少年Scratch实物积木
少儿编程教育-微信公众号
上一篇

【NOIP提高组】2017初赛C++语言试题及参考答案

下一篇

【NOIP专栏】我应不应该参加信息学竞赛?

猜你喜欢

  • 第二届全国中学生网络安全竞赛即将在西安电子科大举办!

    第二届全国中学生网络安全竞赛即将在西安电子科大举办!

  • 严查违规竞赛,29项全国中小学生竞赛活动名单公布!

    严查违规竞赛,29项全国中小学生竞赛活动名单公布!

  • 教育部:2019年度中小学生全国性竞赛活动名单公示

    教育部:2019年度中小学生全国性竞赛活动名单公示

  • 第二十届全国中小学电脑制作活动通知

    第二十届全国中小学电脑制作活动通知

  • 2018年全国青少年创意编程大赛,终评活动即将开启!

    2018年全国青少年创意编程大赛,终评活动即将开启!

  • STEAM教育专题 | 源自硅谷的机器人教育机构萝卜太辣

    STEAM教育专题 | 源自硅谷的机器人教育机构萝卜太辣

主编
主编官方

我真的不是自黑!

中国STEAM教育2018年度风云榜

微信公众号

推荐专题

  • 有趣的少儿编程游戏推荐

    查看专题
  • 国外优秀的少儿编程教育

    查看专题
  • S科学-T技术-E工程-M数学

    查看专题

猜你喜欢

  • 北大校长一针见血:管好孩子这10点,将来考清华北大很轻松!
    2018-04-27

    北大校长一针见血:管好孩子这10点,将来考清华北大很轻松!

  • 贝尔科技嘉年华:我家孩子就是冲着你们来的!

    贝尔科技嘉年华:我家孩子就是冲着你们来的!

    2018-05-29
  • 【NOIP提高组】2017初赛C++语言试题及参考答案

    【NOIP提高组】2017初赛C++语言试题及参考答案

    2017-09-15
  • CodeMonkey编程教程:第0-5关学习攻略

    CodeMonkey编程教程:第0-5关学习攻略

    2017-08-21
  • JavaScript少儿编程教程-前言-为何要学习JavaScript?

    JavaScript少儿编程教程-前言-为何要学习JavaScript?

    2018-01-23

热门文章

    暂无文章

热门标签

鲨鱼公园高考改革高考加分青橙创客青少儿防疫阿部和广错误观念逻辑思维费米科学贝尔科教谷歌教育计算机科学计算机思维解决方案西瓜创客

微信公众号

热门文章 热门标签 年度归档 少儿编程教育联盟

Copyright © 2021 少儿编程教育网 粤ICP备17057575号 · Designed by shaoerbc.org

大家都在搜

  • Scratch教程
  • scratch2下载
  • Scratch编程
  • 编程思维
  • 信息学奥赛
  • STEM教育
  • 编程一小时
  • 自主招生
  • 少儿编程竞赛

关注我们的公众号

微信公众号