您的位置:首页 > Web前端 > JavaScript

JSOI 2018 Round 1 游记

2018-04-06 21:26 330 查看
清明时节雨纷纷,路上行人欲断魂。
一年一度的JSOI,已在不觉中来临。
无论是LGM神犇,抑或只是初一蒟蒻,尽在这不大的赛场中相遇——他们无不在用一行行代码,谱写出自己被OI所充实的青春。
【以上:伪文少】

Day 0
阴雨绵绵的下午,步入南理工,JSOI赛场。
与各路神犇聊了会天,看他们在黑板上写FizzyDavid AK JSOI。
试机,一切顺利。

颇为滑稽的是,AC自动机的模板,我今天才完整写出——先前不过是口胡罢了。根本原因,竟是有小道消息称今年JSOI考字符串。
不仅诧异于djq_cpp曾经的不思进取【雾】。
另外,dtx一上Linux,就找到了游戏的入口。——大抵是AK后消磨时光吧?

Day 1
抵达赛区较早,闲来无事,欣赏了一会儿二月兰——无数淡紫的花朵盛开在林间,还颇有些浪漫气息呢。
突发奇想,出了一道毒瘤线性基模板题:定义一束二月兰的美丽值为其中每一枝的美丽度的异或,现在某神犇要摘一束美丽值>=K的二月兰送给……
开场,看T1,跳T1。
看T2,第一反应:55分是CF原题?然而我不会。看T3。
以为它可做,想了一会儿,却只发现了O(n ^ 3)的做法。
突然意识到T1的数据范围好小……奇怪……状压dp,维护台阶!
写完,测样例,没拍,写T2 T3去了。
T2稍后才发现是一棵树——于是55分贪心变成送分了。然而剩余的45分……还是不会。
二分 + 数据结构?
没敢想下去。推T3。还剩~2h45min,时间多着呢。
然而沉思良久,仍只会O(n ^ 3)。
代码大致如下:namespace subtask_35p //O(n ^ 3) dp solution
{
//... ...
}

namespace sol
{
void solve()
{
printf("DP on trees? FFT? Centroid deposition? I think it's related to link - cut - trees, yet I cannot come up with a single idea QAQ");
}
}最后30min,想T3无果,放弃。玩画图 + 推数论,第一次在省选赛场上的考试竟这样结束了。
赛后——
djq_cpp:“T2怎么做啊……贪心,二分,然后?不会啊……”
某神犇:“T2线段树维护一下就行了吧”
djq_cpp:”???!!!。。。"
其实有些后悔,将时间全花在T3上。不然兴许T2就100分了呢。
终测成绩,200(100 + 55 + 45)。不算超常发挥,却也没有崩盘。
T3三位神犇经松一松(卡常)后,O(n ^ 3)过了。
*FizzyDavid是九省一市唯一一名AK选手!Flag屹立不倒!
JS Rk 10。NFLS Rk 6。
突然想起自己是非正式选手。
于是打掼蛋,浪。
---------------------------------------------诡异的分割线----------------------------------------------------
赛后讲题。
T3题解:
标算——LCT + 卷积 + 树dp。
诡异做法——树分治 + 卷积 + 树dp。
卡常做法——松松松 + 树dp。
djq_cpp:“?????!!!!!。。。。。"
然而依然没有听懂。
听说明天考字符串?
Day 2
有了前两天的经历,去赛场的路便显得平淡多了。
8:00,准时开场。
T1,刚看罢,只见题目描述极长——“省选显然不会考显然的模拟题,那么,可以预见,这道题将会异常毒瘤”,我以为。C = 1的50分貌似可做?又觉得不会这么简单,顿时起疑,于是先搁下。
T2,却令人心生一种奥妙重重的感觉/*雾*/……
树分治?FFT?等下,树dp,35分,写了。
时钟,指向9 : 00。
T3 志糊窜(?)。期待已久的字符串,然而估计又是个毒瘤题。
不管了,SA + LCP无脑上!——咦?这题似乎可以推式子?——莫队O(n sqrt(n) log(n))……
不觉间,9 : 45。新的可优化点遥遥无期——也不必再想了,就这样写吧。
10:30,SA & LCP完成。11:30,维护它们的数据结构完成,公式推完——还有三种分类讨论,给人以一种“常数会炸”的感觉。
…………
眼看正午已至,值得放下调得正酣的T3,去写T1的60分去。//I soon give up
//I've come up with an O(n sqrt(n) log(n)) solution (with a relatively large constant)
//Yet my programming skill is too low to finish the code below
//Spending 3 hours, gaining 0 points
//...
//Hope in JSOI Round 2
//I' ll 'come back' next time! _0w0_令人哭笑不得的是,将我这次JSOI收尾的,既不是一场逆袭,亦非平庸的发挥,而是以上一段有着”千言万语,更于谁人说“的注释。
策略崩。
赛后花絮:
未来女队dxm: "T1是Dinic最大流么?”
djq差点捶桌子。
csl神犇: "T3写炸了“

djq: 您至少写了T1正解啊……
要凉凉……

---------------------------------------------诡异的分割线----------------------------------------------------
写作业,却在写完之前跑去打掼蛋了。//不知为何,每次赢的时候都是1 4,只晋一级,惨惨
评讲T2时,猛然发现T3其实可以构造一下笛卡尔树 然后启发式合并O(n log ^ 2(n))水过……近乎昏厥……
//代价是T2没听懂
T3正解O(n log n),强。
FizzyDavid 两天标准分,强。
djq_cpp 95(60 + 35 + 0),暴力都没打满。
当天~rk 17。总排名掉了多少,未知。

壮志尽在南理工,策略失误一场空。

总结:
总有人安慰我,”你才初一呢,考得不好也无妨,毕竟积累经验。”然而有些事情,也该做了。
这次JSOI,自然收获匪浅——一方面,有幸认识了来自JS的各路神犇,同时也见证了自己近两年来水平的进步;另一方面,赛前的压力,反倒促使我再过一遍似懂非懂的算法,竟首次真正完全理解了AC自动机、熟悉了FFT、平衡树及后缀数组。
两天总分295,总体还可以。然而Day 2的策略爆炸,仍是个不小的遗憾。
常言比赛最忌在一棵树上吊死——然而,我总禁不住在发掘一道题“疑似可做”时,便钻进去,沉迷其中,无法自拔了。
下次定要注意。
至于什么算法上的疏漏——除却网络流仍需加强练习、以防误以为是不可做题外,其实,也就跟着学习节奏走吧——毕竟,考前,曾查漏补缺过呢。
SAM, LCT, 多项式;BSGS, 各种反演……一步一个脚印,慢慢来吧。
加油。
JSOI 2018 Round 2,希望不要重演Day 2的悲剧。
JSOI 2019,期待能创造辉煌。
加油!
OI,前路漫漫;好在,总有一盏灯,提示着我前进的方向。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: