一直没有敢发的NOIP2018游记
一直没有敢发的NOIP2018游记
NOIP2018游记
教练说知足是最好的,尽吾志而也不能及者,可以无悔矣。在这次考试中的表现令我还是十分满意的。(笑)
D1
T0
我配置背得感觉很好,我考场上直接默写出来了,没有什么困难。不过那个键盘我要吐槽一下,放在抽屉里面,特别蹩脚。(你感觉,你又说你感觉)
T1
这道题是原题,五分钟就写完了。就是一个很傻的贪心。不过当时在机房做做到这道题的时候,第一反应是写了一颗线段树然后贪心,后来仔细想一下,就按照直觉给写了一个几行的贪心,交上去过了。运气正好,但也许就是这一题运气好吧。
T2
这道题是我本次NOIP最可惜的一道题,没有之一。考场上我看到这道题,猜了一个结论,也不是猜测,就是证明了一个结论,就是说新的货币系统的组成部分一定是给定货币系统的子集。于是我们sort一遍,然后直接用线性筛素数的办法,看那个数可以直接被比它小的数表达出来就好了,筛一轮就可以出来了。复杂度,而且\(n\le100 ,m\le25000\)写了几分钟就把大样例过了。
但是,为什么说很可惜呢?
众所周知,我的代码里总是有这样的代码。
const int maxn=105;
const int maxnum=25005;
在线性筛答案的时候,需要一个
bool in[maxnum];
来记录这个数字是否被筛出来了。显然,如果不加控制,会越界RE,所以:
sort(data+1,data+n+1);
for(int t=1;t<=n;t++){
if(!in[data[t]])
ans++,in[data[t]]=1,sav.push_back(data[t]);
for(int i=0;i<sav.size();i++){
if(data[t]+sav[i]>maxn)//注意这里
continue;
if(data[t]+sav[i]>data[n])
continue;
if(!in[data[t]+sav[i]])
sav.push_back(data[t]+sav[i]);
in[data[t]+sav[i]]=1;
}
}
显然可以水过去。
但是!有没有细心的小伙伴发现,这一行代码有一点问题
if(data[t]+sav[i]>maxn)
continue;
回顾我们上面那一行:
const int maxn=105;
const int maxnum=25005;
原来!!!!
(其实只需要下面那个对于data[n]的判断就好了)
想不到连续一个多月的考试,都没有暴露我自己代码风格不够直观的问题。机房的小伙伴老说看不懂我代码,然而我不以为意。想不到在NOIP上翻车了......
分数太容易拿,也太容易丢了。或许这就是信息学吧。
九点左右,前两道题就写完了。
T3
写了两个特殊性质,可以说很傻。第一个特殊性质输出一个直径,第二个特殊性质写一个贪心。成功写出40分,其实我写了所有情况的一个假DP做法,不过没拿一分。
D1: \(100+100+40=240 ->100+30+40=170\),有点烦躁。
D2
T0
什么也没发生。不过心疼坐我右边那个小朋友,他坐我旁边,以为我昨天AK了,很是羡慕..他好像第一天没有150吧...
T1
浏览完三道题后,觉得第一题好水,感觉全场能切,先写第一题。第一档我发现就是一个树上贪心,每次把自己所有儿子中最小的那个走了就好了。第二档多一条边,好办。我直接断开一条边就是一个原来的问题了。\(O(n^2)\)
不过今天的T1没有那么顺利。testdata4老是过不了。调了我接近两个小时,终于过样例了。
原来是我比对答案的时候出错了,应该在发现有不同时,判断,然后马上break。我一直没发现。还是我字符串不够熟练啊。所以外面混,迟早要还的。\(O(n^2)\)水过去了。
但是!!!后面测民间数据的时候,我只有88分,最后三个点TLE。我找到原因了,我使用的是链式前向星,所以要sort才能做到不然复杂度就是错的。
加到数组里面先缓存一下,然后再加到链式前向星里就完事了。
不过要乐观,下考后,发现大家居然都没想到直接断一条边做,还说这是一颗奇环树。我根本就没想过这个东西(乱搞主义好啊),没想到其实自己也能骚出这样的办法,233
还剩一个半小时,进入T2 T3。
T2
这道题我以为是组合数学......正好之前yyb讲过的矩阵中不同路线数量是,我以为直接这样能做,但是发现并不行。看到数据范围,发现,觉得是一个状压DP,不过想了一下,转移很复杂。时间不够了,我决定跳过T2,去做T3。写了一个输出样例的程序,走了(还得了很多分)。
T3
这两天好像都没写DP吧?这个一看是个树上DP啊!设表示在节点,有/无驻扎时,最小花费。的时候很好转移,呢?我直接这样:\(dp[i][0]=min(dp[i][1]-min(dp[k][1],dp[k][0])+cost[i])\)
小样例过了,大样例呢?不行。点开样例,发现不可调试,于是我自己手写了一个样例,发现:
dp有后效性!
好吧,好吧,怎么找到一个合适的顺序,使得我可以忽视掉后效性呢?我想啊想,下考了。
\(100+13+24=127->96+13+26\)
结语
NOIP2018 : 二等,知足了,毕竟我才学几个月不到呢,但是很遗憾,高一一等奖肯定有很多新的机会,然而我都只能错过了...
至此,我的NOIP2018就结束了。有惊喜,也有遗憾。惊喜的是,那些我原来觉得不可做的题目,终于可以在我的努力下,扣出一点分。遗憾的是,两道完全会的题目,都没有满分。But life carries on !
I don't know, where this road leads , but I know where to start. ----Via Martin
不知道这条道路会通向何方,但我知道从哪开始。
Winlere ,16,Dec , noon.
回顾
要参加(观)省选的我看到NOIP的我,感觉自己真是naive啊...
dp有后效性这个东西直接上动态dp就完事了,我当时还很崩溃,不知道怎么办,因为写了太久了QAQ,不过菜菜的我居然能过看出来,也震惊。
1=都没有的最大原因就是落实不行,其实也不是我不去落实,当时实在是太弱了!其实当时我多问问,缠着随便一个dalao问问分治的原理是什么,甚至找谢总求教分治原理是什么,NOIP也不会怎么差,对于很多算法的真正理解就是那天突然领悟分治的含义,假如这个觉悟放在NOIP之前,可能NOIP的结果也不会这么糟吧。
一直没有敢发的NOIP2018游记的更多相关文章
- Bittersweet——NOIP2018 游记
p { font-size: 16px; line-height: 1.5em; } blockquote { font-family: 'Times New Roman', 楷体; text-ali ...
- NOIP2018游记(退役记。)
Noip2018游记 这可能是写的最后一篇博客? \(Day0\) 早上六点从学校出发? 早上有雾,在车上扯淡,睡觉. 莫名其妙到了中午,想着午饭怎么解决,后来才知道早上发的四个面包竟然就包括我的午饭 ...
- 前行记录 - NOIP2018游记
NOIP2018游记 - 前行记录 NOIP2018 完跪……滚回学校考半期 QwQ 这篇不是题解 awa ,题解之后会发布的,毕竟我还没有AC呢 又及……G2020 陌路笙歌 - 再见(╯▽╰) 感 ...
- NOIP2018游记 & 退役记
NOIP2018游记 & 退役记 我是一名来自湖北武汉华中师大一附中的高二\(OIer\),学习\(OI\)一年,今年去参加\(NOIP\),然后退役.这是一篇\(NOIP2018\)的游记, ...
- NOIP2018 游记 QAQ
写在前面: 本人初三党.NOIP前两个月不好好停课搞信竞愣是要搞文化课.于是,期中考与NOIP一起凉凉[微笑] 本人写的第一篇NOIP游记,各位大佬们随便看一看就好 Day -n 初赛71,竟然跟wx ...
- 【比赛游记】NOIP2018游记
往期回顾:[比赛游记]NOIP2017游记 转眼间又过去了一年,当年还是初中生的我已经摇身一变成为了AHSOFNU的高一学生. 回顾这一年我好像也没学什么新东西,要说有用的可能就无旋Treap吧,不知 ...
- 初征——NOIP2018游记
前言 从最初接触oi到今年noip到来,也已经将近有一年了.从对于程序一窍不懂到现在开始学习算法,只是短短的不到一年的时间罢了.这次noip,不仅仅是我oi生涯的第一次noip,更是相当于是对我这一年 ...
- NOIP2018游记-退役之战
\(Day\ 0\) 从火车站下来坐地铁\(1\)小时,再乘公交车到酒店,还要帮队里一个断腿大佬搬东西,累死我了.. 到酒店就快\(5\)点了,想打个牌也没时间. 酒店的房间很不错,空间大又干净,后来 ...
- NOIp2018 游记
作为一名蒟蒻,对于NOIp当然是不抱什么希望.所以就只能在比赛中吸取经验咯... Day0 害怕书到用时方恨少,疯狂打板子(玩电脑) Day1 来到考场了,发现键盘空格按不起,觉得非常尴尬,然后他告诉 ...
随机推荐
- requireJS目录
前言 对于像我这种requireJS初学者而言,requireJS最难理解的部分应该是它的路径问题.晚上随便折腾了一下,算是稍微理清了这个目录问题吧. requireJS学习网址:requireJS中 ...
- 从‘void*’到‘int’的转换损失精度
在CentOS6.2 64位下编译一下代码,不通过,提示 ./11_2.cpp: In function ‘int main(int, char**)’:./11_2.cpp:28: 错误:从‘voi ...
- Vue 组件5 高级异步组件
自2.3.0起,异步组件的工厂函数也可以返回一个如下的对象. const AsyncComp = () => ({ // 需要加载的组件. 应当是一个 Promise component: im ...
- Android 之布局
1.RelativeLayout相对布局 a).第一类:属性值为true或false android:layout_centerHrizontal 水平居中 android:layout_center ...
- 关于WPF界面框架MahApps.Metro的一个BUG
碰到了这个问题,记录一下,以便以后查阅: 在一个WPF项目中使用MahApps.Metro界面框架,其中有一个功能是嵌入一个带句柄的标记. 首先WPF是出了窗体和WebBrowser带有句柄外,其他控 ...
- marquee标签跑马灯连续无空白播放效果 纯CSS(chrome opera有效)
marquee似乎没有设置首尾相连播放的属性,内容滚动时总会留出一段marquee本身长度的空隙,某些情况下很不方便: 捣鼓了一会,得出一种解决办法,关键有两点: 1.将需要滚动的内容复制一份于同一行 ...
- shell学习五十八天----/proc文件系统
/proc文件系统 前言:linux中的/proc文件系统,由一组文件夹和文件组成,挂载(mount)与/proc文件夹下. /proc文件系统是一种虚拟文件系统,以文件系统文件夹和文件形式,提供一个 ...
- 推荐个WIN7下小巧的可转录声音的软件-Audio Record Wizard V6.99
之前是XP上用的是 WaveCN 2.0.0.5,但这个软件好久没更新了,不支持WIN7 最终找到了Audio Record Wizard V6.99,尽管没 WaveCN 2.0.0.5好用,但也全 ...
- ASP.NET动态网站制作(27)-- 三层框架(1)
前言:今天主要介绍一下三层框架,给大家一个整体的概念.分层概念使得程序低耦合,更加健壮,扩展性更好. 内容: 1.三层: UI(表现层):主要是指与用户交互的界面.用于接收用户输入的数据和显示处理后用 ...
- SlidingMenu官方实例分析7——SlidingContent和SlidingTitleBar区别
包含ActionBar:setSlidingActionBarEnabled(true); 效果图: 不包含ActionBar:setSlidingActionBarEnabled(false); 效 ...