NOI2024 游记

Disjoint_cat

2024-07-13 21:50:06

Life

# $\texttt{NOI[D] 2024}$ ## $\texttt{Day 7/3}$ 中考完了。 坐火车来到了重庆。 ## $\texttt{Day 7/4-7/12}$ 模拟赛。 怎么打了一场仨暴力 rk1 啊??怎么有个 A 题唐氏 $100\to0$ 啊??怎么有场人均题坐牢 3h 不会,非人均题 30min 切了啊?? 总结:`mt19937 rng;int my_rank=rng()%people_count+1;` ## $\texttt{Day 7/13}$ 被拉去锻炼了 /dk 走了 ??km,腿走废了。 ## $\texttt{Day 7/14}$ 搬到了 YCZX 附近。 晚上被拉出去了。 ## $\texttt{Day 7/15}$ 摆了一天。 ## $\texttt{Day }\mathrm{-1}\texttt{ (7/16)}$ 报到。 签到完想和同学们去打乒乓球的,但是找不到乒乓球馆,于是在篮球馆对着地打起了球。~~所以这种运动叫啥?Ground table tennis?~~ 饭挺好吃的。 ## $\texttt{Day }0$ 开幕式看到 dzd 讲话就开始玩手机了。 下午笔试。试机题这不是我们的 NOIP 2023 吗。乱打了点东西上去。笔试怎么挂了一个啊。/fn 晚上想着不能再颓了。打了 Dinic,NTT,FHQ Treap。下面是我 FHQ 的代码: ```cpp mt19937 R(chrono::steady_clock::now().time_since_epoch().count()); struct info{unsigned p;int v,l,r,sz;info(int v):v(v),p(R()),l(0),r(0),sz(1){}info(){}}tr[1100005];int tot,rt; void pushup(int x){tr[x].sz=1+tr[tr[x].l].sz+tr[tr[x].r].sz;} void split_v(int x,int &l,int &r,int v){if(!x)return void(l=r=0);if(tr[x].v<=v)l=x,split_v(tr[x].r,tr[l].r,r,v),pushup(l);else r=x,split_v(tr[x].l,l,tr[r].l,v),pushup(r);} void split_s(int x,int &l,int &r,int s){if(!x)return void(l=r=0);if(1+tr[tr[x].l].sz<=s)l=x,split_s(tr[x].r,tr[l].r,r,s-1-tr[tr[x].l].sz),pushup(l);else r=x,split_s(tr[x].l,l,tr[r].l,s),pushup(r);} void merge(int &x,int l,int r){if(!l)return void(x=r);if(!r)return void(x=l);if(tr[l].p>=tr[r].p)x=l,merge(tr[x].r,tr[l].r,r);else x=r,merge(tr[x].l,l,tr[r].l);pushup(x);} void ins(int x){int p;split_v(rt,p,rt,x),tr[++tot]=info(x),merge(p,p,tot),merge(rt,p,rt);} void del(int x){int p,q;split_v(rt,p,rt,x),split_v(p,p,q,x-1),merge(q,tr[q].l,tr[q].r),merge(p,p,q),merge(rt,p,rt);} int rnk(int x){int p,r;split_v(rt,p,rt,x-1);r=1+tr[p].sz;merge(rt,p,rt);return r;} int kth(int x){int p,q,r;split_s(rt,rt,p,x-1);split_s(p,q,p,1);r=tr[q].v;merge(p,q,p);merge(rt,rt,p);return r;} int pre(int x){int p,q,r;split_v(rt,p,rt,x-1);split_s(p,p,q,tr[p].sz-1);r=tr[q].v;merge(p,p,q);merge(rt,p,rt);return r;} int nxt(int x){int p,q,r;split_v(rt,rt,p,x);split_s(p,q,p,1);r=tr[q].v;merge(p,q,p);merge(rt,rt,p);return r;} ``` ## $\texttt{Day }1$ ~~这几天不知道喝了多少罐雪碧了。~~ 密码是 `kmfrjf`。~~科目繁荣解法?~~ --- 怎么有 pretest 啊。~~那什么时候能变成 IOI 赛制。~~ 看 T1。这么签到。$\Theta(m!q)$ 有 $60\text{pts}$。哦可以直接哈希维护啊。哦可以莫队,$\Theta(n\sqrt q)$。这能过吗。想了 20min。没想出来咋优化。不管了先写了。啊最后俩点怎么 T 了。Test19 跑了一点零几秒。加了个快读,卡过了 test19。期望得分 $[90,100]$。扔了。 看 T3。这么不可做。非多项式暴力写了。A 性质直接 dfs,写了。B 性质不是 2-SAT 吗。这玩意不是求不了字典序最小解吗。推了下,发现这个题的 2-SAT 有性质,可以做。写了。$36\text{pts}$,扔了。 看 T2,sub1 写了。sub2,哦直接分治可以 $t=20$。写了,$11\text{pts}$。发现可以分治 $12$ 次然后直接询问所有的,$t=13$。写了,$37\text{pts}$。发现每次可以不止二分。取了个 $t=9$ 的,随便过了 $63\text{pts}$。然后搞 $t=8$,搞不出来。写了个爆搜。搜出来一个 $67\text{pts}$ 的序列 $\{2,2,2,2,3,6,19,183\}$,$s=1099960$。感觉把一些 $19$ 换成 $18$ 或者 $20$ 可以减少次数。又写了个打表,发现第七轮分 $179$ 个 $19$ 和 $4$ 个 $18$ 可以做到 $s=1099954$。写写写,诶怎么挂了。我草我怎么找最大值初值设了 $0$,改成 $-1$ 过了 $70\text{pts}$。 期望得分 $[90,100]+85+36=[211,221]$。 中午继续打块,手感怎么没了。输了三把。三点去查分。怎么不开门。怎么不开门。怎么不开门。热死了。开门了,登录,查分。$95+85+36=216$。我草怎么人均 $200+$。这是 NOI 吗。OU 打了 $247$,拜谢。Ranker $218$,小 D $206$。 下午讲题。我草 T2 正解是从上往下构造。唐完了。T3 听说数据极其抽象,$\Theta(2^nn)$ 冲过了 $n=10^5$?? ## $\texttt{Day }499122178$ 上午去了社会活动。~~但是重庆博物馆我上次就来过了啊,怎么又看一遍啊。。。~~ 回来吃完饭 12:05,开始五人开黑 hdu 多校!(我和 OU、ranker、小 D、yyq) 我签了三个到,其他人也纷纷过题。13:25 就签完了九个题。 14:29 过的 J。然后五个人唐氏了一个小时 G 才反应过来三元环计数是典题。15:48 切了。Ranker 一直在赤石 K 题,最后居然 16:54 绝杀 AK! 晚上无聊切了入门赛。和同学们玩了词语接龙: > 一个人出题,另外四个人依次说一个字,连成一句话。 > > > 例:ymh:这个寝室里的人的共同特点? > > > > ranker:giao,OU:批,小 D:反,yyq:动 > > > > ~~好吧我其实都不是~~ > > 你也可以“拆”人家意思,有时甚至能救场。 > > > 例:OU:【数据删除】和【数据删除】最喜欢做什么?(你可以理解为想要进行人身攻击) > > > > 小 D:爱,yyq:上,ymh:**层**,ranker:**楼** 睡觉前无聊翻手机,突然发现我入门赛 B 题实际上**没有**过掉,只是唐氏排行榜上显示了绿色。那我岂不是痛失 rk1。 ## $\texttt{Day }2$ 密码:`fmdrpk`。~~父母大人 PK?~~ 看 T1。抽象。看 T2,抽象。看 T3,抽象。 想 T1,发现 $\Theta(nm)$ 是显然的。写了。然后没思路了。 想 T3,以为想出了 $\Theta(n^2)$ 的做法,写写写,样例挂了,发现假了,只能过其中 A 或 B 性质。慌了,扔了。扔之前发现 A 性质是直接缩 SCC,还有暴力,但是都只有 $5\text{pts}$ 所以暂时没写。 想 T2,发现单个点可以 $\Theta(n^2)$ dp,然后倒过来就能 $\Theta(n^2)$ 算所有点的答案。写的时候发现细节有点多,扔了。 想 T1,发现答案的量级很小(有人说是 $\Theta(n\log n)$ 的?),于是考虑 $\Theta(\mathrm{answer})$。发现集合生成过程等价于重复执行 $a\gets a+2b$ 或 $b\gets 2a+b$,可以直接爆搜。写完立刻过了 $10^6$,结果 $8\times10^6$ 跑了 $9\texttt s$ 多。卡了下变成了 $6.6\texttt s$。卡不动了。$85\text{pts}$ 扔了。 写 T2,大概 12:00 写完了 $\Theta(n^2)$。发现 $h=0$ 且是链的情况可以直接前缀和优化。写了。扔了。 冲 T3,把 tarjan 缩点写了。最后几分钟发现还有指数级暴力没写,结果写到了 12:58 然后没过。。。 期望得分 $85+35+20=140$。 三点去查分,没挂。这 pretest 真够强。为啥不直接 IOI 赛制得了。 晚上去参加了活力嘉年华。把所有单人游戏全都玩了。说了八八七十四。投壶最后一个极限绝杀投中。 20:00 打 ABC。G 被 OU 一眼原了。但还是看不懂题解。赛后在 CF 上锐评被 downvote 了 /fn 打完回去睡觉了。 ## $\texttt{Day }3$ 上午是文艺汇演。各路神仙们纷纷展示了自己的才华。~~我有啥才华啊??~~ 下午颁奖典礼。不是哥们,为啥让我去替 yyq 领奖啊??废了好大一番折腾才搞完。 hf 一共一 Au 五 Ag。拜谢 OU Au。拜谢各位 Au 的神仙。 我也算是拿了个有向无环图(D Ag)。 所以我初三这一年勾子从 $5\xrightarrow{\text{CSP-S}}7\xrightarrow{\text{APIO}}8\xrightarrow{\text{NOID}}9$?是不是可以算达成了一个成就。 明年再见。 如果还有下文就写点吧。 --- 总结一下这场比赛吧。 - 打得好的:拿到了大众分。 - 打得不好的:只拿到了大众分。 - 社交:社恐无社交。 - 饮食:挺好吃的。~~就是有时候饭盛太多了没吃完。~~ - 休闲:词语接龙好玩。嘉年华好玩。Ground table tennis 好玩。