NOIp2018提高&普及游记
(这篇文章是去年写的)
day0
今天上了两节课后就出发了,大概是一点左右到达了宾馆,感觉宾馆条件是相当好的,然后两点出发,两点二十左右到达了考场,看到一群julao已经守候在了大门口,比如GZYjulao,ZJFjulao,YYRjulao,YGjulao,HYjulao等等等等...
然后二十七中开始了往年一贯的传统:合影,然后三个班的人就拍好队形,开始合影了,每次合影都感觉把cls和sls拍得十分挫。
分发完考证后,我先到合肥四十六中的考点去试普及组的机,打了几个比较基础的模板,一小时就这样过去了。
然后一路小跑着到了合肥一中提高组的考点去试机,试完比较基础的东西后,花了十五分钟打了个树剖,然后测了一下,没有任何毛病,于是就提前退场了。
和同学们吃完饭后,我回到宾馆听XJD讲了一下考场策略,就开始写这篇博客的day0了。
感觉自己准备的还算比较充分,我要将这几个月来的所有努力全部投入到这次考试中。
day1
早上起床后骑车去了考场,昨晚连续做了几个梦,都是梦见我如何被提高组的D1T1吊打,正当我忐忑不安地解压完试题后,发现一件重要的事:
D1T1竟然是原题!
于是2min码完T1后,开始浏览T2。
能做出D1T1对于我这种参加提高组的初中生来说已经很高兴了,带着这种心态,我开始在纸上算,然后根据样例和这个问题的性质发现:
只要删去能被其他数线性组合(系数是非负数)成的就好了。
那么exgcd无法解决这个问题,于是考虑用背包解决,写完背包,神奇地发现三组样例全过。
然后看了一下数据范围和时间,这题也正是用背包没有错,时间与空间都十分合理。
上了一个厕所后还剩下2.5h,于是开始看T3。
T3目测是数据结构或DP,正解不会,于是开始全力攻破所有的subtask:
对于a[i]=1,使用贪心。
对于b[i]=a[i]+1],使用二分。
对于m=1,使用树形DP(树上最长链)。
其余使用搜索。
对于我来说,day1早上也只能以这种方式结束了,虽然没能AK,但感觉还是打出了我们初中生的水平,赛出了精神。
因为早上打得比较顺,所以中午回去没有睡觉,看了集网王后直接去肝下午的普及组了。
打开普及组的题面后,就感觉今年的普及组题目不太妙,第三题看出了必须要用贪心或DP,第四题可能要用到树形DP或是字符串算法。
打完了T1T2后,我开始看T3,感觉很不妙,并不是往年那种普及组难度的DP,状态方程与边界处理比较麻烦,那也不能不要分吧,于是我先写了一个贪心,但是贪心却没有过第三组数据,看来虽然DP是我的弱项,但是该面对的还是要面对,我不得不用DP去写这道题,而不是用贪心去逃避。
设计好状态后,我开始推方程,感觉方程也比较好推,但是边界处理十分麻烦,我在上面调了一个半小时,也没有调出正确结果,此时离比赛结束还有1h。
迅速看T4,发现有不少subtask是可做的,于是花了20min写了一些subtask,转回头继续攻T3。
终于T3的前两组样例被我长时间的调试攻破了,但是第三组却又相差很多,只有最后5min了,也没有办法继续了,于是只有无奈检查文件,匆匆交题。
出来以后感觉有点沮丧,因为早上的亢奋导致今天下午做普及组的题心有余而力不足,如果明天不好好对待,可能这次普及一等和提高一等一个都拿不到,让我乘兴而来,败兴而归。
但是难是相对的,我觉得难的同时别的同学也不一定觉得简单,于是我分析了一下今天提高组的试题,思考明天day2的一些题目与算法:
今天T1为贪心,T2是DP,T3是数据结构,那么根据往年的惯例,明天会出现DP和图论,剩下的一题,可能是模拟,组合数学,搜索等等等等,于是我复习了这些算法的模板,准备好好打明天的day2,而不是因为day1的提高而松懈或是因为普及组的事而消沉。
day2
早上是七点起床的,吃好早饭后,我对今天的试题做了以下的分析:
1.今天会有一道图论和一道DP,也有可能是图上DP。
2.昨天普及组的题十分困难,今天的题目也不会像昨天那么水。
3.要抓好每一个subtask,这些小分是决定我是否省一的关键。
于是到达了考场,解压完试题发现果然T1是一个图,但仔细看了一下,其实是一棵基环树。
于是我花了1h想解决今天的T1,但是这题感觉很难,没有任何思路,无奈之下,浏览了一下T2和T3。
T2的话,感觉写暴力都很考验码量,T3一眼看出是一道树形DP。
仔细看了一下T2,暴力真的很烦,而且考场上拿分的应该也寥寥无几,于是使用了打表算法,拿个10-20分应该还是可以的。
T3改了一下数据范围,虽然刚开始也没什么用,但是在写完50分的做法以后,突然想到了一些问题是无需改变的,于是对那些无需改变的问题根本不需要DP,这样的做法能拿到50-100分。
回头看T1,还是只会写树上的,变成基环树就十分难写,只好写了60分的减弱树上版本,此时离考试结束只有3min,检查了一下文件,就这样提交了。
我的NOIp2018也到此结束。
总结:
1.这次提高组的D1放了几道较水的题,导致有些同学第一天打完后很松懈,没有来得及调整面对D2的难题,难题一定会有,所以不能松懈。
2.普及组的34两题难度有增加了,我要在学习提高组的同时夯实好普及组。
3.本次NOIp的subtask较多,设计到许多小分,但是这些小分也不能不要,也许5分都是决定你省一的关键,一定要针对不同的subtask灵活使用不同算法。
4.这次NOIp给我带来了对比赛策略一些很好的实践与感悟,我将在安徽省选中使用它们,不再犯同样的错误。
(去年的自己写的真不错)
NOIp2018提高&普及游记的更多相关文章
- NOIp2018提高组游记
Day1 T1 积木大赛 NOIp2013D2T1.....看到的时候我还以为我记错了,以为原题是一次可以随便加,这题只能加一,出考场后查了下发现一模一样. #include <iostream ...
- NOIP2018提高/普及成绩
明天就要出了,不忍看到自己爆零,现在很慌. 大家都考的如何呢?欢迎留言自己的分数或预估分数.
- [题解]NOIP2018(普及组)T1标题统计(title)
NOIP2018(普及组)T1标题统计(title) 题解 [代码(AC)] #include <iostream> #include <cstdio> #include &l ...
- [NOIp2018提高组]旅行
[NOIp2018提高组]旅行: 题目大意: 一个\(n(n\le5000)\)个点,\(m(m\le n)\)条边的连通图.可以从任意一个点出发,前往任意一个相邻的未访问的结点,或沿着第一次来这个点 ...
- [NOIp2018提高组]赛道修建
[NOIp2018提高组]赛道修建 题目大意: 给你一棵\(n(n\le5\times10^4)\)个结点的树,从中找出\(m\)个没有公共边的路径,使得第\(m\)长的路径最长.问第\(m\)长的路 ...
- [NOIp2018提高组]货币系统
[NOIp2018提高组]货币系统 题目大意: 有\(n(n\le100)\)种不同的货币,每种货币的面额为\([1,25000]\)之间的一个整数.若两种货币系统能够组合出来的数是相同的的,那我们就 ...
- [NOIp2013提高组]积木大赛/[NOIp2018提高组]铺设道路
[NOIp2013提高组]积木大赛/[NOIp2018提高组]铺设道路 题目大意: 对于长度为\(n(n\le10^5)\)的非负数列\(A\),每次可以选取一个区间\(-1\).问将数列清零至少需要 ...
- NOIP2018提高组省一冲奖班模测训练(六)
NOIP2018提高组省一冲奖班模测训练(六) https://www.51nod.com/Contest/ContestDescription.html#!#contestId=80 20分钟AC掉 ...
- NOIP2018提高组省一冲奖班模测训练(五)
NOIP2018提高组省一冲奖班模测训练(五) http://www.51nod.com/Contest/ContestDescription.html#!#contestId=79 今天有点浪…… ...
随机推荐
- Verilog数组表示及初始化
(转)Verilog数组表示及初始化 这里的内存模型指的是内存的行为模型.Verilog中提供了两维数组来帮助我们建立内存的行为模型.具体来说,就是可以将内存宣称为一个reg类型的数组,这个数组中的任 ...
- C# 多线程参数传递
之前使用多线程的时候,基本没有遇到过参数传递的情况,最近,接连遇到需要进行参数传递的多线程的使用.每次都要重新上网查一下,太麻烦了.为了方便以后的使用,就把经常参阅的网上资料记录下来. 原文地址如下: ...
- spring中JavaConfig相关的注解
在spring3.0中增加配置spring beans的新方式JavaConfig,可以替换spring的applicataion.xml配置.也即@Configuration对等<beans/ ...
- spring之:XmlWebApplicationContext作为Spring Web应用的IoC容器,实例化和加载Bean的过程
它既是 DispatcherServlet 的 (WebApplicationContext)默认策略,又是 ContextLoaderListener 创建 root WebApplicationC ...
- mysql添加用户
增加新用户: 格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码" 例1.增加一个用户test1密码为abc,让他可以在任 ...
- matlab学习笔记(3)
数据分析: 多项式: 多项式表示:p = [1 2 3 0]; //表示 1*x^3+2*x^2+3*x^1+0 ,系数从高次向低次项,0系数不能省略. roots函数:求解多项式的根.roots(p ...
- android 自定义控件之事件
首先,继承需要扩展的VIEW,然后在里面添加一个自己的事件方法,例如, oniconclick(myinterface pinterface){ minterface = pinterface; } ...
- Android中SQLite查询date类型字段出现有返回但是为错误值的情况
出现该情况的原因是因为查询精度与数据库中存储精度不相同造成的,例如,查询精度为 YYYY-MM-DD 但是存储精度为 YYYY-MM-DD HH:MM:SS,就会出现该错误. 更改查询精度为YYYY- ...
- 最短路dijkstra堆优化
demo: #include<bits/stdc++.h> #define max_v 102000 #define inf 0x3f3f3f3f using namespace std; ...
- Codeforces 1142B Lynyrd Skynyrd
---恢复内容开始--- 题意:给你一个排列p和数组a,有t组询问,每次询问一个区间的子序列中是否有p的一个循环排列. 思路:以p = [3, 1, 2]举例, 我们扫描数组b,假设当前数字是1,那么 ...