JSOI2023 游记

Day 924844031

退役前最后一场模拟赛。

T2 用 \(\mathcal O(\frac{n^4}{16 \omega})\) 冲过了 \(n = 2000\),很震撼。大概是要求一个带特殊性质的 \(0/1\) 矩阵的秩被我用线性基 bitset::_Find_first() 启发式硬搞过了。

希望省选的 RP 不要因此消失。

Day 924844032

没去学校。感觉 \(3\) 月份状态明显不如 \(2\) 月,具体表现为模拟赛前 \(10\) 的次数少了一半,于是在家不做题,尝试调整状态。不过上午还是把某场已经咕了半个月的 CF 题补掉了,写了一堆很智障的错误,果然状态不佳啊。

中午点 KFC,大概是退役前最后一个疯狂星期四了。

下午美美地睡了一觉。醒来以后有被新闻震撼到。

js-12

\(12\) 人中还得减去一个女队。除去集训队和高三,发现自己 NOIP 省内排名 rk12,校内排名 rk5。这下队线外 rk1 和校线外 rk1 全占,提前退役了。

奶一波 JS 省队,nfls \(\frac{1}{3}\),jzhx \(\frac{1}{3}\),剩下的 cz, xs 和 tx 各期望 \(1\) 个,女队大概率 rhx。而我稳坐队线 & 校线外 rk1,哈哈!😃 👍

所幸分差不大,仍有翻盘的可能。但愿如此吧,队线外的人大都这么想。

明天干啥呢?去学校用比赛的系统敲敲不太熟的板子吧。或许可以去看一看总结,回顾回顾自己模拟赛成为 🤡 的经历。/cf

江苏荣光不再了。

Day 924844033 \(\equiv\) 0

为什么拿 \(924844033\) 作为模数呢?因为它的原根是 \(5\) 而不是 \(3\) 啦!

敲了一些各种板子,一直敲到下午试机。试机写了 NTT 和 SAM,奶一口都没用。还写个线段树用来测对拍,纯属无聊。晚上翻一翻模拟赛的记录,并把某些不太常用但感觉挺重要的算法看了看。

晚上比较早就睡了。明天 RP++!

Day 1

\(7\) 点的闹钟,硬是拖到了 \(7:10\) 才起床。

\(8\) 点左右到了学校,在走廊外的窗口吹了一会儿风。

\(8:30\) 发 pdf 密码,三个传统题。T1 感觉直接跑个 bfs 啥的就行了,签到题吧,但还是耐着性子读完了 T2 和 T3 的题面。T2 看着像 tarjan,T3 似乎是用什么数据结构维护贪心,有 \(15\) 个大样例,看起来不像是 yyl 组的题。

决定先签到,发现建图是 \(\mathcal O(nm)\) 的,思考了几秒钟发现直接差分求一下并再乱搞搞就行了,\(10\) 分钟以内过了大样例。肉眼检查检查感觉没啥问题,丢掉去看 T2。

大小 \(\in \{1,2\}\) 的划分似乎是好处理的,而 \(\{i,i+1\}(i > 1)\) 的划分就必然是从割点处分开。感觉做一遍 tarjan 然后枚举方点算一下就行了?于是开始码,期待着 \(1.5h\) 做完 T2 然后留下 \(3h\) 刚 T3。没多久过了小样例,测了样例 \(2\) 发现输出是 \(2\),然而答案是 \(3\)。检查了一下代码感觉没写错的样子?于是在草稿纸上画了 \(20\) 个点的图(并意外地发现数据中有重边,虽然不影响 tarjan),这才意识到一个可行的划分不一定要从一个方点割开,于是算法整个假掉了。

接下来的半小时,我尝试修改 T2 假掉的算法,但没有任何进展。大约 \(10\) 点决定暂时放下 T2,去给 T3 打一个暴力。胡了一个子树向父亲合并的贪心,用堆启发式合并维护,看了眼部分分的表发现有高贵的 \(48\) 分!那还不赶紧写掉?于是在 \(10:30\) 之前,通过了第 \(\{x \mid x \le 8 \lor x = 11\}\) 个大样例,\(\mathcal O(nm \log^2 n)\) 开了 O2 跑的飞快。

继续瞪了眼 T3 的部分分表,发现唯一可做的似乎是性质 C,用树剖维护下 \(\min / +\) 矩阵就好了,但是只有 \(6\) 分,谁写?性质 B 的链没有想到什么复杂度正确的做法,性质 A 可能得维护每个元素在堆中存活的深度,感觉巨大难写,还是回去想 T2 更实惠。

想着先拿个 \(k=0\)\(40\) 分吧,但只有大样例 \(2\)\(k=0\) 且答案是个 \(\mathcal O(1)\),于是写了个 \(\mathcal O(3^nn)\) 的暴力用来对拍。\(k=0\) 直接枚举因数然后在圆方树上跑个 dp,\(\mathcal O(n \sqrt n)\),写起来很痛苦。之后的一小时基本处于写了拍,拍了挂,挂了调,调了再挂的死循环中。中间某一个版本拍到了 \(100\) 多个点,正准备开香槟然后挂了。好在 \(11:30\) 之前过了拍,至少感觉分差不至于大到离谱了。

又花了半小时想 T2 的树,但是啥思路都没有。\(12:00\) 又回头看了眼 T3,在 T2 的 \(n \le 20\) 和 T3 的性质 C 中果断选择了 T2。去洗了把脸以后准备莽个 \(\mathcal O(n^3)\),但为什么不去给暴力剪剪枝呢?于是把枚举子集改为了「枚举合法的子集」,随机数据下跑过 \(20\) 简简单单。这下不挂分勉强上 \(200\) 了,但不知道会不会有一车人过了 T2。

最后半小时,感觉也没啥别的分能写了,尝试冲 T3 的性质 C 但未果。最后 \(5\) 分钟果断弃掉性质 C 去检查了文件名以及 \(10\) 分钟写出来的 T1 了,求稳不比那 \(6\) 分重要?

估分 \(100 + 55 + 48 = 203\),希望不要挂。还没我的 APIO2022 高。

出来一问,ymx AK 了,很猛。csy 没 AK,很震撼,但仍有极高的分数。高二有两个 \(223\),并已知 wjz 过了 T2。看来还是被碾压了。

无所谓,Day 2 还能翻盘/被翻盘。

Day 2

晚上睡的不太好,\(6:30\) 左右就醒了。试机的时候感觉有点困,但不太敢睡,担心趴一会儿会导致整场精神都不太好。

\(8:30\) 准时开题,T1 数据范围只有 \(10\),一脸的直接 \(\mathcal O((nm)^3)\) 判胜负态。T2 感觉可以从集合大小 \(\le 2\) 入手,但一眼看不出什么想法。T3 很复杂的计数,一脸的不可做,大抵是防 AK 用的吧。

那就先写 T1 吧。写起来有一车细节,感觉不比什么大模拟好写,总之很痛苦。大约 \(9:10\) 写完了判胜负,求步数还没写,但 \(9:20\) 才把判胜负调对。接下来打算写个 dfs 用来算步数,但是输出一直不对,想了半天才发现 dfs 会产生环。那就不 dfs 了,想到可以直接在 bfs 里面统计步数吧,这似乎恰好是对的。于是浪费了半小时后,\(10\) 点整过了大样例,码长 7K+,近 \(200\) 行。

没心思检查 T1 了,洗把脸准备先丢一边看 T2。发现部分分给的很多,于是对着表格开始想。性质 A 直接判 -1,跑个 dinic 二分图匹配。性质 B 中 Bob 只有两种可能的方案,那 Alice 让 \(X\) 最小的那种尽量大就行了。性质 C 把二分图匹配换成带权匹配,dinic 费用流硬上。性质 D 不会做,先放着。加上指数的暴力已经有 \(52\) 了。但是怎么会有人能忍住不写退火的?于是 \(n,m \le 200\) 的随机数据也能跑过去了。这样就有至少 \(60\) 了,那么开始写。预估 \(12\) 点之前必须写完,然而 \(11:30\) 就完工了,共计 \(341\) 行,8K+。

接下来的举动让我大受震撼。写完 T3 人人都会的 \(10\) 分后,我浪费了宝贵的 \(30\) 分钟在思考 T3 一脸不可做的各种部分分上,然而一分都没有得到。大约 \(12:15\),我回来思考 T2 的性质 D。其实看完 T2 不久我便有一个在 \(S \cap T\) 的点之间连边转图论的想法了,但并没有仔细思考下去。在思考性质 D 的过程中,我意识到合法的情况应该是一个基环树森林,这样正解就呼之欲出。然而此时已经 \(12:30\),基环树上的各类情况看起来较为复杂,我并无足够的自信能在比赛的最后半小时中思考完并码出来。同时性质 D 也并非该转化的某个比较好写的分支,如果贸然开冲可能会使得这半小时的努力化为乌有。因此我选择检查码量巨长的 T1 和 T2,不过一直到比赛结束也没有瞪出来什么细节上的错误,应该问题不大。

总之被翻掉了,且高二学长人均 \(210\)。预计不超过 \(100+60+10=170\),JS 前 \(11\) 不知道还有没有。校线?做梦去吧。

无所谓,C 类会出手。

Day 懒得算

出分。day1 没挂分,day2 T2 变成了 \(48\),似乎是错误估计了 flow 的效率以及退火退的不够好。

总分 \(100+55+48+100+48+10=361\),加上 NOIP 算是苟进了 JS 前 \(11\)。据说我这个分还能有 ZJ 队线?我不好说。

似乎挺多人 day2 T1 挂成了 \(20\) 以下,为他们默哀。

Day 还是懒得算

高贵的「1/3 受限」。

posted @ 2023-03-30 20:08  yaoxi-std  阅读(1102)  评论(6编辑  收藏  举报