NOI2018同步赛垫底记

NOI 2018 Day 1

打出 GG GG

看完题感觉 A A C都挺可做的,稍微想了想感觉都能编出来做法,就先去写 A A 了。

A是个普及组并查集,几乎全场都过了,但是是多组数据。写完之后直接命令行测了测每个样例,都没什么问题就扔了。

看了看 B B ,感觉应该先打个表。打完表发现所有满足条件的序列的最长下降子序列都不超过2,然后感觉就是这个结论了。然后开始逐位确定,中间#、 idea i d e a 挂了几次,发现实际上在每个位置就是要求 fn,m f n , m 表示长度为 n n 的排列第一个数是m的方案数。
推了一会感觉有点推不出来,于是又打了个表,发现实际上就是一个类似杨辉三角的东西,不过一条边上不是 1 1 而是卡特兰数。
尝试把卡特兰数转成括号序列,想了半天没想清楚。然后随便把第i行第 ij+1 i − j + 1 列的数乘上了 ij i j 就莫名其妙变成真的杨辉三角了。
然后得到了一个式子 fi,j=(i+j2j1)×(ij+1)i f i , j = ( i + j − 2 j − 1 ) × ( i − j + 1 ) i ,感觉这个式子要用上还要推,只剩 2h 2 h 多了,写了个 80 80 ,赶紧去写 C C

C题一开始想了个SAM的两个 log log 做法,肯定过不去。不过发现可以SA做到一个 log log ,在求 SlSr S l … S r TxTm T x … T m 的最大 lcp l c p 时误以为只要在 height h e i g h t 上找相邻的就可以了。写完调得差不多还剩 1h 1 h ,发现总是跑不出样例,然后发现 idea i d e a 又挂了,于是开始修锅。
直接在 height h e i g h t 上找是不对的,但是整个区间可以分成通过 height h e i g h t 作用的 lcp l c p 和端点作用的 lcp l c p ,可以在线段树上用非常复杂的二分求得这个端点,然后两边分别处理。但是这个做法根本不能写,写到只剩 20 20 分钟的时候打算弃疗改两个 log log
因为要改一个 log log ,所以之前枚举右端点的那份代码删了,然后不知道枚举左端点的代码哪里写假了,最后 20 20 分钟根本发现不了。调不出来,打出 GG GG

同步赛打完估分 100+80+0 100 + 80 + 0 ,感觉凉了。

下午测评的时候才发现真的凉了: A A 题忘记清空最短路的 vis v i s 数组,得到了 5 5 分的好成绩; B B 题写完了几乎所有的部分,除了忘记拆开式子将 fi,j f i , j 化为 (n+mm)(n+mn+1) ( n + m m ) − ( n + m n + 1 ) C C 题随便交了个完全错误的垃圾玩意,过了 Q=1 Q = 1 的两个点,最后只得到了 93 93 分。

感觉问题主要就出在了 C C 题挂的一次 idea i d e a : 因为这个问题导致整个时间的预判出现了问题,也没有对 A A 进行任何的检查。而 C C 题的实际做法好写简单,没有想到纯粹是因为想到一个做法就开始去写了,而没有去思考一些更简单的做法,可以说是导致考挂的直接原因。

至于别的原因,还是代码能力不行,写东西写不出来,感觉是写的时候注意力不够集中的锅。

看起来 day2 d a y 2 300 300 分也翻不进队线了。

还好放弃了省队名额,给安徽丢脸了。

离 IOI 还有一个半月,这样下去是要打铜的。

NOI 2018 Day 2

好像看起来真的打铜了(摔

A A 题读出了四个版本的题意,只有一个版本可做,结果 1.5h 1.5 h 才写完。

感觉 C C 题一看就不能做,于是去看 B B

B B 一开始一直觉得分治靠谱,过了 1h 1 h 突然发现复杂度不对,然后又花了半个小时想到了一个 分类讨论+虚树+直径+平衡树合并 的一个 log log 做法,感觉并不太能写。改成了暴力线段树合并然后开始码。

写完过了样例 1 1 ,调了调过了样例 2 2 ,调了半个小时多组数据清空过了样例 3 3 ,然后最后也没过样例 4 4

怎么 A A 题我用 multiset multiset 达到了和 set set 一样的效果…手残把 erase(it) erase(it) 打成了 erase(*it) erase(*it) GG GG

B B 题数组开小了导致 m>50000 m > 50000 的点全挂了。在 lca lca 相同的部分和不同的部分各写了一个 bug bug ,估计同步赛也没啥分了。

C C 题怎么送了 50 50 啊,不过也没写,可能是因为是同步赛于是就心态不一样了。。

好像让名额让出了一个 D D 类集训队,赚了赚了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值