NOIP 2017 总结

NOIP2017 总结

DAY 0

又到了一年一度的NOIP……

傍晚6点多才从学校出发,到广州已经8点出头了。

不过酒店比之前好了不知道多少,各种设施齐全。

和同学玩耍了一会儿,便进入了梦乡。

DAY 1

6:25早早被闹钟叫醒,本来还想再睡一会,

一想到要NOIP便心情激愤,睡意全无。

于是就去吃早餐,早餐还不错,有很多东西吃。

坐上大巴去考场,8:15都到考室了。

结果还不能试机,白白坐在位置上等。

(幸好刚坐下来的时候已经试了一会儿,~偷笑~)

终于打开了题目,便聚精会神开始看题。

第一题一看没什么思路,心里就有点慌,心想这不符合NOIP的风格啊?

第二题就是一道纯模拟,比较简单(心情平复了许多)。

再看第三题,有点像根据SPFA来DP之类的。

于是开始搞第一题,手出了几个数据发现没什么可搞,

但是似乎发现了一些规律,答案似乎是a*b-a-b!!!

于是我激动地打了个暴力,一拍——居然没问题!!!

这下稳了,我信心满满地开始打第二题。

没想到这题其实细节挺多的,一遍打下来样例错的很离谱。

于是只能无奈地调试,调出了三四个错误,终于过了小样例。

(吐槽C++不能直接换行,就算用\n换行了在LINUX下也要换成\r,很麻烦)

所以我只能一个一个读入完才没事。

测完小样例又测大样例,结果又出错了!

十分无奈的我又找出了两三个错误,这下总算没错了。

我十分不放心地又出了几个小数据,发现没问题。

这时才10:30不到,还是比较稳的。

接着又兴致勃勃地开始打第三题。

打了一会儿自己之前想的那个DP,又花了点时间调试,

这才终于过了样例!

可我还是高兴得太早了,一测大样例发现输出的答案比正确答案大了很多。

开始时我还傻傻地以为是DP重复转移了,就又花时间修改了转移的方式。

结果还是大很多,我有些百思不得其解。

之后想了想才发现原来直接DP有后效性!!!

时间只剩下15分钟,完了,爆炸了!!!

我惊慌失措地开始打30分 k=0 的暴力,过了样例就没管它了。

再检查了一下程序比赛就结束了。

在车上大家交流题目,发现大众分都是200+,第三题果然很坑~~~

下午乖乖待在酒店。。。

晚上还是去二中吃饭,饭菜还不错,有水果吃,还有雞吃(美味)。

晚上乖乖待在酒店。。。

DAY 1 评测结果:

自我估分:100+100+30=230

学军数据:100+100+0=200

洛谷数据:100+100+0=200

第三题怎么回事呢???

原来如果是有环的情况还是会出现低级的重复转移!

这样答案还是会算大!应该倒过来做一遍先才行!

DAY 2

6:45被闹钟和DDX叫醒,比昨天睡多了20分钟懒觉。

一想到今天DAY2,顿时心情激愤,睡意全无!*2

又有得吃美味的酒店早餐,还喝了瓶酸奶和奶茶。

又坐大巴去二中,路上还小小的补了补觉。

进了考室,吸取昨天经验,先“偷偷”试一下机。

题发下来就开始努力想题了。

第一题就是并查集简单题,之前都有做个类似的原题,都不怎么要想。

第二题开始时没什么思路,看到 n≤12 觉得可能是状压或者直接搜索。

第三题也没有太多思路,只能拿部分分。

直接开始敲第一题,几乎一遍过,样例都没怎么研究。

过了小样例和大样例之后不怎么想拍,肉眼检查了一下就不管了。

心里觉得第三题更能拿分,就开始想第三题。

但是一直不能解决空间问题(表示不会神奇的动态开点)。

无奈之下决定先打了个30分的暴力。

很快我便过了样例,觉得没什么好搞就去打第二题暴力了。

可是由于我搜索能力太差,居然不会枚举父亲来转移(都不知道我当时怎么想的)!

觉得暴力没什么希望的我决定打一个40分BFS直接构造。

很快也过了样例,这是大概是10:15左右。

我还是有点心慌,这样的分数就只能赛季报销了!

于是我专心开始研究第三题。

观察很有规律的数据范围,我突然眼前一亮!

咦?!n=1 !也就是说只有一行!

还说什么,直接Splay啊!(NOIP里的平衡树……)

犹豫了几秒钟之后,我下定决心开始狂敲。

打了半个钟左右过了样例,但心里很虚。

就打了个拍,用之前的暴力拍我的 Splay,没有问题,20分到手。

我美美地继续思考,又发现 q≤500 似乎也可以做。

摁了摁计算器,发现只需要开个 Vector 就能解决空间问题了。

因为最多只修改 500 次,没修改过的那些的编号还是原编号,就不需要开空间存了。

我又一顿狂敲(中途因为对 Vector 有少许不熟卡了卡)。

终于艰难过了样例,我长长地舒了口气。

心里很虚的我又用暴力拍我的 Vector ,发现没什么问题,又有20分到手了。

这时我的第三题已经拿到了70分,但我决定还是继续发掘部分分。

我又发现当所有事件的 x=1 时,所有修改都发生在第一行和第 m 列。

太好了,用两棵 Splay 维护那两行不就行了嘛!

我很爽地将之前那一大段 Splay 复制了一遍,把数组名改一改就好了(真爽)。

结果因为有些数组名没改过来又调了很久(不爽)。

就这样我终于打完了 4000 bytes 的程序,而且没有拍出错(成就感++)

那么我的第三题拿到了80分,比之前的简简单单的30分多出了整整50分!

顿感努力拿部分分真好!

时间还剩半小时,我决定在第二题上水点分。

发现它的值会很接近在最小生成树上构造,

于是我打了一个最小生成树 加 枚举根用BFS按深度搜索。

这样估计能水点分吧。

检查了一下程序之后,比赛就结束了。

大巴上与同学们讨论了一下试题,我恍然大悟,

发现第二题的暴力很好打,只需要 n^n 枚举每个点的父亲,

这样就能构成一棵树了(感叹自己的暴力水平–)。

而且再加上一个估价函数就能秒过本题!

就这样,我的NOIP2017结束了,我们一行人坐车回了学校。

DAY 2 评测结果:

自我估分;100+40+80=220

学军数据:100+45+50=195

洛谷数据:100+60+50=210

什么?第三题居然爆炸了?

啊啊啊!!!没有开long long!!!

我居然没想到 (3*10^5)^2 会爆 int !!!

这下弃坑了,辛辛苦苦打的两棵 Splay 白打了……

这真是太粗心了,“马失前蹄”啊,还是不够细致。

不过还好,第二题果然水了点分(好险)。

——总结——

这次的NOIP做的不是很理想,比如说细节没有把握好。

连 long long 都不记得开了,暴力又不会打,

对时间和部分分也没有很好地把椌。

不过还好的是该切的题都切了,DAY1第一、二题,DAY2第一题都过了。

正常总分( DAY1 + DAY2 ):

100+100+0 + 100+40+50 = 390

希望下次能考出一个更好的成绩吧!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值