前言

ZJOI 王朝复辟???。。。

这次比赛在 5 月 3 号和 4 号,由于 qz 教育局什么五一不调休,正常放完双休回来,刚好比赛的两天就是周二周三,还做好了回来隔离半个月的心理准备,这两天算不了什么。

day0

比赛前一天下午 1 点半出发,坐的小(mian)巴(bao)车(che),虽然只坐了 2h 不到,但是腰被安全带勒得酸麻了(这个安全带拉开后只能收紧不能放松,差评!),然后车程刚好可以让我和 fls 看一部电影,选了忍者神龟,很快就到了 yw,先到了酒店放下东西,然后立刻去 ywzx 试机。

到了试机的地方,就先检查了键盘每个键都是好用的,然后随手写了个 A+B Problem,感觉键盘蛮不错的(至少比 qzez 的键盘好),然后考虑了一下赛时用什么软件,顺便看到了 FLY 也时监考老师 /se,就把 FLY 辛辛苦苦找来的 Windows 版本的 g++ 9.3.0 贺过来了(我之前也找过,没找到,这波血赚),最后看到其他人都是直接 FFT 或者其他的大数据结构来练手,我感觉我 A+B 就有点寒掺了。

回到酒店,晚饭有亿点点辣,再加上有点热,说不出来是咬到舌头了还是辣和热的痛觉,吃不下去了,去其他同学房间想蹭个不辣的菜,结果不是菜更辣就是吃完了,于是就先看了会手机准备凉下再吃。

晚上也就和 fls 放松了一下,愉快的睡了(虽然开始有点热,起来调了下空调,但还是睡得蛮舒服的)。

day1

早上六点半起来,下楼吃早餐,早餐很好,吃得很舒服。

然后就去了 ywzx 的四楼机房,依旧是 FLY 和其他几个老师在监考,这个压缩包的密码确实厉害,ZJ0l,还是老师手写的,0 和 O、I 和 l 分不清,直到老师打在大屏幕上才解压出来,服了服了。

开题直接开幕雷击,一看到三道 1024MB,时限分别是 2s、4s、5s,无语了,所有出题人全不部是不怀好意的啊,心心念念的送分题没了 /ll。

开 T1,什么奇葩计数题,想了 20min20min20min 只想到 O(n×2n)O(n\times 2^n)O(n×2n) 的暴力,只有 20pts20pts20pts,算了算了,差不多得了。

然后开 T2,觉得这是一道什么脑洞题,发现可以拿 40pts40pts40pts,毫不犹豫,我才不想正解呢(其实是我想不出来罢了)!直接开始写暴力。

此时过了 2h,开 T3,发现这道题的特殊性质是一点不懂,然后又半毛钱也没有推出来,自己只会一棵树的分,TMD 怎么只有 10pts10pts10pts,哎,101010 分也是分,打了再说。

打完 T3 暴力的时候还剩下 2h2h2h,觉得 T1 好像应该可以搞个多项式复杂度的算法,可能可以拿更多的分,然后就设了 fi,j,k,l,gf_{i,j,k,l,g}fi,j,k,l,g​ 表示 iii 个节点,在第一棵树中有 jjj 个叶子节点和 kkk 个还没有连接儿子的非叶子节点,在第二棵树中没有连接父亲节点的叶子节点有 lll 个、非叶子节点有 ggg 个,然后转移是 O(n2)O(n^2)O(n2) 的,所以总复杂度是 O(n7)O(n^7)O(n7),傻眼了,不仅要滚动数组,而且一分没有。

但是还是先打出来准备待会优化,然后发现可以排除一些无用状态,这样本地开 O2 可以跑到 n=40n=40n=40 的点,结果看了看,什么鬼东西,出题人什么丧心病狂的魔鬼,还是 20pts20pts20pts,结果优化来优化去,想着前缀和优化转移,结果发现还有个组合数在哪里搞不掉,索性开始卡常(因为 n=50n=50n=50 的点要跑 8s8s8s,甚至想去用 python 打表,可是想想时间不多了,等会 python 不会调试,直接放弃)。

结果卡了半天的常数还是只能过 n=40n=40n=40 的点,弃了弃了,现在离结束只有 1h 了,所以直接再看看 T3,突然发现还有个简化版的仙人掌是可以用 tarjan 缩点然后 LCA+差分的,于是花了 30min 写完调完走人了。

再也不想见到 T1 这种**的题目了,20min 可以得 20pts20pts20pts,2h2h2h 甚至也可以得 20pts20pts20pts,如此 liang 心的出题人,难得难得。

考完之后还要写一坨什么 md5 加密的东西,真无语。

顺带提一句,考试的时候肚子有点不舒服,说不上很痛,但是就很难受,真是老天都不想让我考好。

下午回到酒店,洗洗衣物,做好再多呆 3 天的准备,然后水了水群消息,吐槽了一下 FJOI,然后和 fls 玩脑力游戏,不过有些东西确实挺妙的。

最后晚饭比昨天好多了,至少没有特别辣,但我还是等到了完全凉了吃几口缓一缓,直到 9 点才吃完,之间从七八点开始和 fls 打篮球,蛮有趣的。

差不多也就洗洗睡了。

day2

早上 6:40 老叶突然发消息让我们收拾好东西,下午就要回 qz 了,除了艹字没话讲。

到了考场这个密码很好,什么 Cc!FN0I,特派员挺会想密码的。

比赛开始先开 T1,暴力竟然有 10pts10pts10pts,这么liang心,然后先花了十分钟写完了暴力,以为无论 nnn 是多少,最后都会变成全部一样的,结果发现样例直接一个反例,然后看到了 n=2kn=2^kn=2k 的点,好像这个就是会变成一样的了,于是暴力改了几个字符,多了 5pts5pts5pts。

接着开了 T2,发现对于我这种低人亿等的代码能力十分难打出来,于是打了个暴力中的暴力,就是先处理出所有符合条件的点,然后把相邻的点两两连边,然后直接 dfs 枚举每个点是否要选,加一些剪枝,结果只能跑过去 a,b,c≤2a,b,c\le2a,b,c≤2 的点,甚至没有半分。

然后想了想 a≤3a\le3a≤3 的点好像可以状压 dp,然后状态一设,转移方程式一列,发现转移是 O(22×(4×a−1))O(2^{2\times(4\times a-1)})O(22×(4×a−1)) 的(后来想想发现其实有很多转移都是不合法的,是不是合法的转移个数很少呢?也许吧),直接爆炸,然后开着暴力让暴力慢慢跑。

接着开了 T3,然后尝试推了一下期望,但是有个什么 sb 的最小值的期望,我还不能用最小值的期望与另一个最小值的期望进行转移,做屁啊,直接看部分分。看到有菊花图,想了想,不会,又看到有一条链,这我会了!期望等于没有,直接单调栈就完事了,花了 30min30min30min 打完之后,发现样例的第二个数据怎么都过不了,想了想,发现如果 rootrootroot 不在链的两端的话,就会在两边把 f(root,root)f(root,root)f(root,root) 都算一遍,于是减掉就好了,随便手捏了两组小数据,看看没啥问题,走人,什么万一哪里没有取模爆掉了我也不管了,反正已经炸了,这 5pts5pts5pts 不算什么。

此时离考试结束仍有 2h2h2h,回去干 T1,准备写个矩阵乘法可以得 5pts5pts5pts,可惜当时没有想到可以预处理出这个矩阵的 2i2^i2i 的幂是多少,然后用初始向量去乘一下,就能把复杂度从 O(n3×q×log⁡k)O(n^3\times q\times\log k)O(n3×q×logk) 降到 O(n2×q×log⁡k)O(n^2\times q\times \log k)O(n2×q×logk),就有 30pts30pts30pts 了。可是这些只是考后才发现的。当时我就推了一下,发现其实没有必要开 n×nn\times nn×n 的矩阵,完全可以考虑一下把 nnn 拆分成 2x×y+2x−12^x\times y+2^{x-1}2x×y+2x−1 的形式,就是前面一坨都是 2x2^x2x 个连续一样的,最后落下一个 2x−12^{x-1}2x−1 个,然后不管拉多少次面,仍然是这种形式,于是我就优化了一下刚刚的矩阵乘法,可以过 ∑n≤150\sum n\le150∑n≤150 的点,但是 ∑n≤500\sum n\le500∑n≤500 的点我可以把我卡到 25s25s25s,但是有可能造数据的人不会想我一样直接一组数据 n=498n=498n=498,把我的矩阵大小卡到最大,说不定能骗几分。

花了 50min50min50min 写完之后,看到了还有 n=98304n=98304n=98304 的点,分解了一下质因数,发现用我刚刚的方法,矩阵大小就是 222,然后就能过了,于是改了改,似乎又可以拿 5pts5pts5pts 了,结果随便捏了组数据,发现跑不出来,想了半天知道了是因为我矩阵大小开太大了,导致跑的很慢,于是我就把我所有的矩阵都卡到最小使我的程序跑的快一点。

现在还有 30min30min30min,我先查了一下我 T1 的每个部分分有没有写错,突然发现我的 ∑n≤50,∑q≤50\sum n\le50,\sum q\le50∑n≤50,∑q≤50 的最原始的矩阵乘法输出了个负数,我看呆了,每一步运算都转了 long long 并且取模过了,但就愣是输出负数(赛后 fls 帮我开打了一下矩阵里数组的大小然后就没输出负数了,我谔谔,难道开 515151 不够吗),直到还剩下 5min5min5min,心态炸了,不管了,直接把这个部分分注释掉,用下面的优化过的(赛后看看似乎没有输出负数,真是惊险)。

回去的时候和 fls 看了绝杀慕尼黑,这种篮球赛想想就是开始领先,然后最后一个失误使对手反超一分,留下来几秒钟时间绝杀掉去,虽然完美猜中结局情节,但是这部电影确实十分优秀,推荐一下。

后记

最终估分:
day1:20+40+40=10020+40+40=10020+40+40=100
day2:35+0+5=4035+0+5=4035+0+5=40
实际得分:
day1:20+40+10=7020+40+10=7020+40+10=70
day2:40+0+0=4040+0+0=4040+0+0=40

加上 NOIP 2021 自己走了狗屎运的 284pts284pts284pts(见 NOIP 2021 游记–zhengjun),如果 Day2 的标准分算初中生神犇 zky 的 140pts140pts140pts 的话,我的标准分是 440440440,如果不算的话,我是 450450450 分。(貌似离队线就差了 NOIP T3 的正解加上 NOIP T4 的暴力加上 Day1 T3 的环套树的部分分加上 Day2 T2 a≤3a\le3a≤3 的 30pts30pts30pts 的部分分以及 Day2 T3 写挂了的那 5pts5pts5pts?)

分析:Day1T3 的环套树的部分分写挂了,fls 好像也挂了,直接没掉 30pts30pts30pts,Day2T1 的优化过的算法跑过了一个 ∑n≤500\sum n\le500∑n≤500 的点,可是 Day2T3 的 degdegdeg 数组没有清空,导致在链的部分分中只有第一组数据输出正确的答案,其余的都输出 000。/ll

目标:不垫底,考到 fls 总分的 30%30\%30%,优势在我,椰树牌椰汁保佑我!

希望明天我正式参加省选的时候不要 ZJOI 了啊啊啊啊啊啊,我要打联合省选!

总结一下这两天,当了 9h9h9h 的暴力人,从来没有考虑过正解,还好没有这么做,遗憾的是 FLY 还是很忙,没有找机会把 fls 的 lg 本子要来,或许可以让 FLY 出钱从 yw 邮寄到 qz。(((

最好来个什么 NOIP 标准分 400,day1 标准分 300,day2 标准分 300,反正我已经寄了,这样就可以让我和 fls 的分差稍微少亿点点了。/kk

但愿明年省选能良心一点吧。

ZJOI 2022 游记--zhengjun相关推荐

  1. PKUSC 2022 游记--zhengjun

    day1 上午 先看了 PKUSC 2022 的开幕式,看了北大的介绍之类的,感觉似乎在损清华? 然后试机测试了一下,发现放了一道去年考的 T1. 下午 考试开始,先看了 3 3 3 道题,然后感觉 ...

  2. PKUSC 2022游记

    Day0 虽说是线上的,但还是勉为其难称之为游记吧.毕竟,如果叫考场实录什么的又怪怪的. 上午打了SDOI2022 Day1,为了适应PKUSC所以是IOI的形式,但是165pts的成绩在IOI的形式 ...

  3. 联合省选2022游记

    Day 0 昨晚将某谷头像换成了麻美桑,顺势奶一波学姐: 身体好轻,怀着这么幸福的感觉战斗还是第一次 体が軽い,こんな幸せな気持ちで戦うなんて初めて 已经没什么好怕的了 もう何も怖くない 因为我不再是 ...

  4. CSP-S 2022游记

    打算把初赛和复赛写一起qwq 还是更新了复赛篇. 初赛篇 9.17 模拟考一半被拉去调初赛设备,模拟手滑把 a1a1a1 写成 aaa,80pts80pts80pts 没啦,状态低迷. 下午摆了摆盘了 ...

  5. ZJOI round1游记

    Day 0 到镇海报道了 大佬们太多了--话说镇海的晚饭还真好吃啊-- 听说某人要咱去找bwh--不过咱和他也不是很熟啊--还是算了吧--(才不是因为嫌麻烦懒得去呢) 晚上吃完晚饭之后在镇海校园里参观 ...

  6. NOIP 2022 游记

    Day 0 看看我的知识储备,于是看了一晚上的强连通(埋下伏笔). Day 1 早上吃了早餐,七点半就到了考场. 小休息一下,进考场了. 开题,先看下第一题,挺好写的. 第二题,构造题,先跳过. 第三 ...

  7. CSP-S 2022 游记

    Day 0 下午发现过不了excrt的板子 + 摆烂了一晚上( ++rp; Day 1 9:00 起床 10:00 洗澡) 14:05 到达考点(学校), 码缺省源 + 邻接表 + 建SegMentT ...

  8. NOIP 2021 游记--zhengjun

    比赛前一天 上午翻了翻打过的模拟赛(其实是翻 cqy 的提交记录发现有原题的),发现洛谷上都有很多紫题,于是贺了自己的代码过了好几道紫题和一道蓝题. 吃完饭简单收拾了一下就上大巴了. 在大巴上和 fl ...

  9. CSP 2022 游记

    本文章来自一名希望能拿一等的小六. 初赛篇 我学习算法和 C++ 是相当晚的,C++ 是在 CSP考前 767676 天学的,而算法则更晚.在8月份的时候,我还参加了一个叫 "希望编程&qu ...

最新文章

  1. UIUC教授季姮:叫我带头人,而不是女性带头人(附视频)
  2. linux memcache 源码包,Linux 安装Memcache扩展支持(示例代码)
  3. 使用python的while语句,编写简单门票与年龄计算器
  4. lisp 焊接符号标注_焊接符号标注大全
  5. BufferedReader 中的 readLine()
  6. php memcached mysql_PHP Memcached使用详解
  7. SQL Server 2017 正式发布
  8. cocos3.2中如何创建一个场景
  9. 如何选择使用结构或类
  10. python中set index_Python set_index和reset_index详解
  11. go语言和python的区别_golang和python有什么区别?
  12. 【小白的刷题之路】字符统计
  13. jQuery 实现菜单
  14. JSF通过EL读取List中的值
  15. An NVIDIA kernel module ‘nvidia-drm‘ appears to already be loaded in your kernel...
  16. 【2022年】帝豪gs/帝豪gl 车机安装第三方软件教程
  17. 一键DDOS防火墙安装程序
  18. 计算机cpu性能过剩吗,都说CPU性能过剩,为什么电脑还有卡顿的情况?原来是它在拖后腿!...
  19. CSS学习03:CSS文本属性
  20. 微信小程序投诉页面与交互设计

热门文章

  1. IDEA上maven窗口上的图标都是什么意思
  2. A comprehensive overview of knowledge graph completion
  3. 二维火Java实习生面试
  4. 42步进电机与57步进电机
  5. WPF基础笔记(5)画刷
  6. SIGIR22:User-controllable Recommendation Against Filter Bubbles
  7. 2020年第三方铁塔数据大汇总,全年新增超4900座
  8. 编写php自定义扩展
  9. atx860和java_捷安特XTC800和ATX860有什么区别
  10. Android通讯录模糊匹配搜索实现(号码 首字母 简拼 全拼)