NOIP2017提高组比赛总结

前言

转眼间,NOIP2017(经常叫他NOIP,其实全称是全国青少年信息学奥林匹克联赛)就这么过去了。回望这2个月,既有参加NOIP的激动,也有赛场上一些失利的遗憾。想一想,我应该给自己总结一下吧,希望其他人能从中获益,也让我明年再战的时候能有所借鉴。

正文

NOIP2017初赛

今年的初赛,由于是到了提高组,选择题有5题改成了不定项选择题,就是一题可能会有多个答案的,这就比较难,于是我就提早了很长时间去网上搜罗提高组初赛的真题(明年一样可以用呢),提早很多做(然而最后并没有刷完所有真题),考试前还慌慌张张的复习组合的知识。在考试的时候,看到第一道选择题就懵逼了,Pascal语言什么时候退役?我不知道啊。。。
开场以后,我极其认真的做每一题,但是发现速度不够快,做完选择题已花了很久,做问题求解的时候,一看是不是什么对偶图最短路,发现手模就可以做出来。等我开始做读程序写结果的时候,坐在我左边的杭二高三巨佬已经快做完了。
终于,我做完了所有的题目,时间已经不足10分钟,我又检查了一圈,查出了一些错误,在心慌中,初赛结束了。
一个星期以后,成绩出来了,我好像是95.5,省里排名rank20,遗憾的是错了3题选择题啊,明年要好好努力,但总算是过了初赛这到坎。

NOIP2017复赛day1

NOIP的day1,是我第一次考提高组,无比认真也又十分激动,前一天晚上还在复习各种知识,生怕考到的知识没掌握好

  • day1 T1 小凯的疑惑(math)
    https://www.luogu.org/problemnew/show/P3951
    开场第一题,发现好像是数学题?(考试后有人说用扩展欧几里得,我学的不好啊)场上推了一下,推出了答案是(a-1)b-a
    怎么**推(猜结论)**的呢?
    首先,数据保证有答案,
    然后,考虑a的倍数一定是能取到的,那么不能被a整除的数除a的余数(除了0)只有a-1种,由于有条件:a和b是互质的,所以设x=b%a(x!=0),那么大于等于b的模a余数为x的数都能取到了,b设y=2
    b%a(x!=y),所以大于等于2*b的模a余数为x的数都能取到了…以此类推,因为有a-1种余数,所以最后一个取到的余数是(a-1)*b%a,这个余数的上一个数是(a-1)*b-a,所以答案就是这个

  • day1 T2 时间复杂度(complexity)
    https://www.luogu.org/problemnew/show/P3952
    快速的打完T1,就可以开T2了,一看T2,感觉就是一道模拟题嘛,考验代码精细的时候到了。根据题意,很自然的想到维护一个栈来处理,用几个变量记录是否有语法错误、最大的答案,在退栈的时候清空数组,读入的时候写的有条理一点,就好了

  • day1 T3 逛公园(park)
    https://www.luogu.org/problemnew/show/P3953
    不到1个小时打完T1、T2,就摩拳擦掌的准备T3了,T3是什么啊?一看到题目,有点懵逼,暴力模拟显然是不能过的,因为方案数还要模,那肯定是很多的吧,那么考虑dp,f[i][j]表示到了第i个点,还可以绕远j的距离的方案数,因为n<=100000,k<=50,O(n*k)显然没问题,那么好了,正着、倒着一遍最短路是不能避免的。然而看到题,还有无数解的情况,怎么样会无数解呢?那就是你发现走到一个地方,发现有0环,那么就可以在0环上无线绕,方案就有无限种了,但是发现,出现0环并不一定是影响答案的,只有在路径长度<=最短路长度+k的路径上的0环上的点才会影响答案。一开始我想错了,打了半个小时。后来把dp、spfa都打好了,就差一个判无限方案情况。事后得知判0环其实也可以找出所有有用边、点,把0边拖出来拓扑判环就好了,但是我考场上没有想清楚,直接拓扑,所以从0环上指出来的0边指向的点会被我判在0环上,所以我的公式:起点到他的最短路+终点到他的最短路<=起点到终点的最短路+K不能完全得到应用。在民间数据中我的T3没有被卡,但是不知道官方数据会不会卡。

day1的考试我剩下了一个小时,最后在那里手构数据,检查代码、freopen,进行对拍,却没想到T3会有正确性问题,希望官方数据出来后day1能考的好一点

NOIP2017复赛day2

考完了day1休息了半天,和大家一起揣摩T2可能考什么题目,day1不是很难,day2可能就要出难题了,终于,day2开始了~

  • day2 T1 奶酪(cheese)
    https://www.luogu.org/problemnew/show/P3958
    day2T1,看到距离公式,吓的以为是计算几何,但是仔细一看其实是一个并查集的题目,最后看到下表面和上表面是否并查集的值相同就好了

  • day2 T2 宝藏(treasure)
    https://www.luogu.org/problemnew/show/P3959
    T2,n那么小,就觉得是状压dp,但是状态怎么表示呢?我想了一个方法,并且打完了,小样例过了,大样例却没过,仔细一想,正确性好像有问题,我f[i][j][k]表示现在的取到的点的状态是i,枚举到第j个点,j这个点的深度是k,但是转移感觉不会写,然后就挂了。最后我交上去了一个所有V相同的部分分,枚举每一个起点BFS贪心的取,不知能拿多少分。事后得知这一题爆搜加剪枝就能拿很多分,而BFS的状压可以过掉此题。

  • day2 T3 列队(phalanx)
    https://www.luogu.org/problemnew/show/P3960
    T3感觉是数据结构题,但实在不知道怎么做,分块?应该能拿到1e5时的分,暴力,优化一下内存能拿50分,加起来就有80分了,然而我打的时候内存优化(set维护哪些被用过)出了点问题,然后最后只有30分了。问一个dalao怎么数据结构,他说用treap维护,spilit一下就好,只是可能还是会T,线段树加二分就好。

纵观day2,不是很顺,T2T3都和正解擦肩而过,部分分也没打好,还是要提升代码能力,要是T3部分分打出来了,正解该是也很好打的吧。

总结

NOIP2017结束了,day2实在是考的不尽如人意,没有打好暴力,就落得如此下场,day2T2死磕太久,导致时间不够,day1T3正确性没得到保证,说明思路的严密性还不够,所以以后要培养判断一个算法正确性的能力吧。

后记

NOIP成绩已出,100+100+70+100+15+40=425,很是一般,不过无妨,明年加油!

NOIP2017提高组比赛总结相关推荐

  1. [NOIp2017提高组]奶酪(BFS)

    [NOIp2017提高组_Day2T1]奶酪 1 #include<iostream> 2 #include<stdio.h> 3 #include<vector> ...

  2. NOIP2018提高组比赛总结

    NOIP2018提高组比赛总结 前言 新赛季,依旧有很多失误. 在些许的遗憾和无奈中,NOIP2018,撒花结束 纵观今年的整一场NOIP,有许多值得总结的地方 正文 NOIP2018初赛 第二次参加 ...

  3. P3959 [NOIP2017 提高组] 宝藏

    P3959 [NOIP2017 提高组] 宝藏 题意: 额题意不好说,就是n个点m个边,选定一个点为根节点,构造一个最小生成树,边的权值为该该边起点到根节点之间的点的数量K(不含根节点) * 道路长度 ...

  4. NOIP2017提高组模拟赛4 (总结)

    NOIP2017提高组模拟赛4 (总结) 第一题 约数 设K是一个正整数,设X是K的约数,且X不等于1也不等于K. 加了X后,K的值就变大了,你可以重复上面的步骤.例如K= 4,我们可以用上面的规则产 ...

  5. [NOIP2017 提高组] 时间复杂度

    题目 时间复杂度[NOIP2017提高组] 题目描述 小明正在学习一种新的编程语言 A++,刚学会循环语句的他激动地写了好多程序并 给出了他自己算出的时间复杂度,可他的编程老师实在不想一个一个检查小明 ...

  6. 【NOIP2017提高组】列队

    题目背景 NOIP2017提高组 DAY2 T3 题目描述 Sylvia 是一个热爱学习的女孩子. 前段时间,Sylvia 参加了学校的军训.众所周知,军训的时候需要站方阵.Sylvia 所在的方阵中 ...

  7. P3951 [NOIP2017 提高组] 小凯的疑惑 / [蓝桥杯 2013 省] 买不到的数目

    [NOIP2017 提高组] 小凯的疑惑 / [蓝桥杯 2013 省] 买不到的数目 题目背景 NOIP2017 提高组 D1T1 题目描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每 ...

  8. 【NOIP2017提高组】小凯的疑惑

    小凯的疑惑 题目背景 NOIP2017提高组 DAY1 T1 题目描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每种金币小凯都有无数个.在不找零的情况下,仅凭这两种金币,有些物品他是无 ...

  9. 【NOIP2017提高组】奶酪

    奶酪 题目背景 NOIP2017提高组 DAY2 T1 题目描述 现有一块大奶酪,它的高度为h,它的长度和宽度我们可以认为是无限大的,奶酪中间有许多半径相同的球形空洞.我们可以在这块奶酪中建立空间坐标 ...

最新文章

  1. 学习动态性能表 第二篇--v$sesstat
  2. 删除文件session丢失
  3. python wait之后怎么起起来_python wait方法_Python条件类| 带有示例的wait()方法
  4. mysql表中插中文报错_向mysql表中插入含有中文的数据时报错:[Err] 1366
  5. python commands模块在python3.x被subprocess取代
  6. Android之如何解决android.os.NetworkOnMainThreadException的异常
  7. 程序员新人怎样在复杂代码中找 bug?
  8. Silverlight学习笔记(一)——Silverlight够酷吗?
  9. 【JAVA高级】——myEclipse连接mysql启动数据库服务
  10. RabbitMQ、Redis
  11. PHP字符串处理函数
  12. 菜鸟心态综合症4:缺乏自信,总对自己说No
  13. 网游服务端开发入门知识
  14. python水仙花数的代码_Python水仙花数的编程代码写法
  15. java模拟器配置_JAVA模拟器全功略!
  16. 这个网站堪称宝藏,收藏起来吧
  17. 【libyuv】windows构建
  18. c语言编程 消除直线锯齿,C语言 抗锯齿像素渲染
  19. 地图标识符号大全_起名字大全男孩 男孩名字,起名字大全男孩
  20. 如何提高服务器网站访问速度,如何有效提升网站打开速度?

热门文章

  1. Properties和IO流相结合的方法
  2. 测试发送消息和接受消息
  3. 常用的函数式接口_Predicate接口_默认方法ornegate
  4. ES6新特性之class类的基本语法
  5. JVM-Java内存区域
  6. 200730学习日报6字符串
  7. 3.2Python的循环结构语句:
  8. 紧急通知!最新版CleanMyMac X月底倒计时清仓冲量!
  9. 51nod 正整数分组
  10. CSS让文字在元素内绝对居中!!!【ie和谷歌】