NOIP2017提高组比赛总结
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=2b%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提高组比赛总结相关推荐
- [NOIp2017提高组]奶酪(BFS)
[NOIp2017提高组_Day2T1]奶酪 1 #include<iostream> 2 #include<stdio.h> 3 #include<vector> ...
- NOIP2018提高组比赛总结
NOIP2018提高组比赛总结 前言 新赛季,依旧有很多失误. 在些许的遗憾和无奈中,NOIP2018,撒花结束 纵观今年的整一场NOIP,有许多值得总结的地方 正文 NOIP2018初赛 第二次参加 ...
- P3959 [NOIP2017 提高组] 宝藏
P3959 [NOIP2017 提高组] 宝藏 题意: 额题意不好说,就是n个点m个边,选定一个点为根节点,构造一个最小生成树,边的权值为该该边起点到根节点之间的点的数量K(不含根节点) * 道路长度 ...
- NOIP2017提高组模拟赛4 (总结)
NOIP2017提高组模拟赛4 (总结) 第一题 约数 设K是一个正整数,设X是K的约数,且X不等于1也不等于K. 加了X后,K的值就变大了,你可以重复上面的步骤.例如K= 4,我们可以用上面的规则产 ...
- [NOIP2017 提高组] 时间复杂度
题目 时间复杂度[NOIP2017提高组] 题目描述 小明正在学习一种新的编程语言 A++,刚学会循环语句的他激动地写了好多程序并 给出了他自己算出的时间复杂度,可他的编程老师实在不想一个一个检查小明 ...
- 【NOIP2017提高组】列队
题目背景 NOIP2017提高组 DAY2 T3 题目描述 Sylvia 是一个热爱学习的女孩子. 前段时间,Sylvia 参加了学校的军训.众所周知,军训的时候需要站方阵.Sylvia 所在的方阵中 ...
- P3951 [NOIP2017 提高组] 小凯的疑惑 / [蓝桥杯 2013 省] 买不到的数目
[NOIP2017 提高组] 小凯的疑惑 / [蓝桥杯 2013 省] 买不到的数目 题目背景 NOIP2017 提高组 D1T1 题目描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每 ...
- 【NOIP2017提高组】小凯的疑惑
小凯的疑惑 题目背景 NOIP2017提高组 DAY1 T1 题目描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每种金币小凯都有无数个.在不找零的情况下,仅凭这两种金币,有些物品他是无 ...
- 【NOIP2017提高组】奶酪
奶酪 题目背景 NOIP2017提高组 DAY2 T1 题目描述 现有一块大奶酪,它的高度为h,它的长度和宽度我们可以认为是无限大的,奶酪中间有许多半径相同的球形空洞.我们可以在这块奶酪中建立空间坐标 ...
最新文章
- 学习动态性能表 第二篇--v$sesstat
- 删除文件session丢失
- python wait之后怎么起起来_python wait方法_Python条件类| 带有示例的wait()方法
- mysql表中插中文报错_向mysql表中插入含有中文的数据时报错:[Err] 1366
- python commands模块在python3.x被subprocess取代
- Android之如何解决android.os.NetworkOnMainThreadException的异常
- 程序员新人怎样在复杂代码中找 bug?
- Silverlight学习笔记(一)——Silverlight够酷吗?
- 【JAVA高级】——myEclipse连接mysql启动数据库服务
- RabbitMQ、Redis
- PHP字符串处理函数
- 菜鸟心态综合症4:缺乏自信,总对自己说No
- 网游服务端开发入门知识
- python水仙花数的代码_Python水仙花数的编程代码写法
- java模拟器配置_JAVA模拟器全功略!
- 这个网站堪称宝藏,收藏起来吧
- 【libyuv】windows构建
- c语言编程 消除直线锯齿,C语言 抗锯齿像素渲染
- 地图标识符号大全_起名字大全男孩 男孩名字,起名字大全男孩
- 如何提高服务器网站访问速度,如何有效提升网站打开速度?