• CCF NOI2021(网上同步赛)游记


    CSDN同步

    时间:

    (2021.7.26) (8:30 - 13:30).

    (2021.7.28) (8:30 - 13:30).

    前言((Day 0)

    暑假一直在坚持编程,但是我知道一件事:就算编了整个暑假,也很难回到之前的巅峰水平,因为知识点的遗忘特别特别快。语文背书的上午背了下午就能忘,何况是几年前学的东西呢?现在看就和新学没什么两样。

    不过不管怎么说,对于一个正常的初中选手,应该熟练掌握省选必备的所有算法。事实上我做到了,几乎每个初中信息生都能做到。很简单:模板在你面前,你会;但是变了个题目,就废。

    ( ext{NOI}) 我大概从来没有参加过。( ext{NOI2020}) 网上同步赛,因为那个时候沉迷于提升 ( ext{whk}) 就没有去,当时还心底还颇嘲讽一些“傻傻”去考的人,没想到一年之后自己就要加入进来,也不多想什么了。

    我本来没有机会去参加 ( ext{NOI}),事实上这一生都不一定有这个机会了。因此同步赛能拿多少拿多少。目标 (150),也不是特别高吧(尤其对于一个新初三的学生,强一点的都是全国银牌水平了)。

    冲冲冲!

    Day1 (2021.7.26)

    我感觉我要无了。

    首先,( ext{CCF}) 搞了一出延迟,然后 (8:30 ightarrow 10:00),我也是服了。虽然我去不了现场,但是也不能这样搞吧?什么文件都没有就给我延迟,然后到了 (9:44) 来个公告说 (10:00) 开始,提前 (5-10) 分钟进系统,结果系统好像 (9:57) 才进的去。这就为我废掉做了铺垫。

    下载发现要半小时,然后 (5) 分钟后有学长发 ( ext{PDF}) 和数据了,然后就不下了。(360) 下载真慢。

    先看了下三道题,好像都是和树/图有关的,有点惊讶。前面练的动规全部没用。

    (T1) 入手,没什么思路,直接打暴力,然后调了一会儿,就拿到了 (30) 分的 (mathcal{O}(Tnm log n)) 的分数(好像还有点险),不过应该有。但是 (B) 种特殊情况应该暴力可以过掉?那就有 (60) 了。不过他菊花图硬卡我,我也没办法。我更相信出题人用脚造数据。

    对链没什么思路,因为那样就要写一个 (01) 线段树,写了一会儿发现完全写不了,然后不管了。

    (T2) 题很长,直接跳到 (T3),发现 (T3) 题意很简单,就先写了个 (28) 分的暴力。然后发现 (m=n-1) 是棵树,树的话 (k=0,1) 就很好拿,但是先没写,回去看了 (T2).

    (T2) 题确实长,但是意思还算简单。读懂之后就去写 (T3) 的树的情况,中间炸了好多次,最后还是没调出来。还是码力不够吧,就这样丢掉了宝贵的 (16) 分。

    时间已经不多,于是我加速写 (T2) 暴力。(我写的暴力,是真真真的暴力)时间复杂度我都很难分析,仔细想想后应该是 (mathcal{O}(C_p^{n_0} qk)),其中 (p) 表示总路径数。一看这玩意儿就有爆零的危险。但不管怎么说,(10) 分有了。写完暴力感觉这个人都不好,因为时间真的不多了。这个时候最高得分是 (60+10+28=98),达到总分 (150) 的目标太远了。于是调 (T3) 又没调出来。

    大概最后 (5) 分钟,我看到了 (T2) (B) 的特殊情况,很明显,答案就是 (1) 或者 (998244352). 于是我对于 (p geq 10000) 的情况(很明显暴力 (10^4) 超时)直接停止搜索,然后随机其中一个数输出。但多组数据么,能对一个就不错。

    期望得分:(60 + 10 + 28 = 98).

    希望总分能有 (150)!(看来好像不算特别难?)

    upd:(图转载)

    完。这是大众分 (300) 的节奏。

    最后我们来看一下我本来应该写出的分数。

    (T1) 暴力和特殊性质(线段树)拿到 (70).

    (T2) 对于同时两种特殊性质的情况很好解决,于是 (40).

    (T3) 把树的部分分可以全部拿到,于是 (56).

    于是 (70 + 40 + 56 = 166).

    大失败。

    upd:民间测了:

    (30 + 0 + 28 = 58),非常成功!

    Day2

    今天没得比赛,也没搞社会活动,就是玩。

    今天三道树/图的题。盲猜明天 (T1) 是优化动态规划的难题。毕竟剩下只能考 (3) 个知识点,对吧?然后今天晚上就来复习单调队列优化和一些状态上的优化。

    (T2,3) 就会搞一些冷门知识了吧,像打暴力之类的。(?)

    会不会搞提答、构造之类的游戏题还不是特别确定。虽然我不希望有这种题,但我猜有,大概是传统艺能?

    得到了官方的一些现场得分情况,因为他们是当天出分的。然后兔和 ( ext{ix35})(A) 了,剩下肯定还有好多切题(或 (A))的。就我这个 (***) 分数在现场大概是 (350) 左右:

    T1
    100:211
    70:273
    50:355
    30:387
    
    T2
    100 57
    85 64
    50 164
    20 316
    
    T3
    100 43
    64 66
    44 133
    28 313
    

    准备明天 ( ext{Fe}).

    • 某:

      • 啊?
      • 没事,您58+300
      • 加上笔试100,说不定能压队线/se

    不过要是真 (458) 那倒确实队稳了。

    Day3(2021.7.28)

    ( ext{CCF}) 果不其然再次提前 (-0.5h) 表示敬意。

    感觉今天一点优化都没搞到,考的都是啥啊。

    三题全裸暴力。

    (T1) (mathcal{O}(nm)) (还有 (256) 的巨大常数)暴力给多少他看着办。毕竟还有随机数据,没准就过了呢。还写了个 (k=1) 的简单字典树,但是没有任何数据的静态码就不算入总分了吧。

    (T2) 会维护操作序列,但是不会维护 (f),于是还是强行变成暴力。所以对特殊性质没有任何想法。

    (T3) 一开始差一点点就以为自己想出正解了,然后迅速干掉了错的做法。然后就暴力枚举,特别暴力的那种。

    期望得分:(16+20+12=48). 因为我自己会的太少,所以就提前 (20) 分钟交了,反正后面也是废掉了,就来颓游记了。结果差点赛中发布游记,还好及时隐藏了

    大概会达成成就:没有一道题的得分超过 (30).(这是要把我整活)

    这个绝对不会挂分了,绝对不会挂,因为分数内的大样例全过,因此绝绝对对不会挂分。因为昨天 (T2) 只测了样例,导致废掉;但是这次就绝对不会挂!!!绝对!

    没关系,反正到了现场也是愉快地 ( ext{Fe}),那就再愉快点吧~

    冲冲冲!

    upd:民间测了:

    (24+20+12=56).

    还好没挂分。

    (T1) 数据貌似被我多卡过了两个点,(k=1) 的写萎了。

    这样总分就是 (58+56=114),估计打铁了。是个人都比我高吧。

    upd:发现 (T1) 基于 (mathcal{O}(nm)) 的乱搞做法。

    本来含有 (256) 的大常数,但是!由于朴素暴力只过了 (10^4),考虑优化。

    (32) 位一段,逐段用 bitset 的方式找不同。由于随机 (32)(16) 个不同,加上 (k leq 15),找 (1) 段就可以结束(当然只是均摊)。

    这个方式中,“找不同”的常数大大低于线性。本来是扫一遍,现在是扫一遍不同的,而且还都是位运算,自然超快的。

    根据其他人的实践结果,按照你程序的常数和分的段数,可以得到 (36 - 80) 不等的分数。

    说实话这个没想到我也没啥好说的,位运算确实是我没复习到的点,昨天一直在复习动态规划优化然后给我来这几个题,我也是服了。

    幸亏 ( ext{Day2}) 没有挂,不然连三位数都没有,直接原地升天。

    简易的代码胜过复杂的说教。
  • 相关阅读:
    2. 获取access_token
    1. 钉钉可以做什么
    3.5 创建模型-关系
    3.5 创建模型 其它
    3.3 创建模型 阴影属性
    3.4 创建模型-并发标记
    Spark运行CDH6.3.2碰到的由于hive驱动引起的问题解决方法
    Spark中碰到需要转义的|分隔符填坑方法
    Spark2 Can't write dataframe to parquet hive table : HiveFileFormat`. It doesn't match the specified format `ParquetFileFormat`.
    Spark连接CDH平台thriftserver和kerberos访问不一致错误排查
  • 原文地址:https://www.cnblogs.com/bifanwen/p/15062287.html
Copyright © 2020-2023  润新知