9.23 ~ 9.30
9.23
集训第一天。
早晨因为太多人没拿早读资料被老登 D 了。
不是哥们你不早说
现在我上哪给你找资料去 😅
上午模拟赛。
发现 T1 的图挂了,于是看形式化题意;
初始有一张 \(n\) 个点的完全图,接着删除 \(m\) 条边。
询问有多少长度为 \(13\) 的序列 \(p_1,...,p_{13}\) 满足:
- \(1 \le p_i \le n\)。
- \(p_1\) 与 \(p_2\),\(p_2\) 与 \(p_3\),\(p_1\) 与 \(p_4\),\(p_2\) 与 \(p_5\),\(p_6\) 与 \(p_7\),\(p_7\) 与 \(p_8\),\(p_8\) 与 \(p_9\),\(p_{10}\) 与 \(p_{11}\),\(p_{11}\) 与 \(p_{12}\),\(p_{12}\) 与 \(p_{13}\) 有边。
方案数对 \(998244353\) 取模。
什么牛魔纸张东西;
就在我还在思考这一坨是个啥的时候把原题面 PDF 发下来了;
哦......哦,这样啊,那没事了。
-
我会 \(O(n^{13})\) 搜!
然后发现 \(O(n^{13})\) 连第一个点都过不了。 -
我会 \(O(n^{5})\) 搜!
能过 \(n \le 10\),会死在 \(n \le 1000\) 上。 -
我会 \(O(n^{3})\) 搜!
你说的对,但是 \(O(n^{3})\) 也过不了 \(n \le 1000\)。 -
我会 \(O(n^2)\)......
我不会。
所以一个小时过去了还是只会打搜
看 T2。
区间推平 + 整体数颜色,直接想到珂朵莉树(
虽然双 log 过不了 \(2e5\) 但是应该有 80
而且看着好像是个挺麻烦的东西所以直接上珂朵莉了;
打了半天之后把小样例调过了,然后大样例直接死;
🙃
看了一下啥都没看出来,坏了,珂朵莉不会是错的吧;
试着跑了一下第二个大样例,发现直接过了;
哦是链啊那没事了
又调了 30 min 之后啥都没调出来;
期间想打个拍然后发现暴力也锅了 😅
想着后面还有俩题直接润了
期望得分 \(80 \to 30\)
T3 几何,不会,把 \(n=1\) 的特殊性质拿了;
值得一提的是我用 windows 计算器的画图把样例画错了,我还想为啥答案是 1/2
,明显有更优的吧 🤡
T4 大数据结构,会不了一点;
想打个暴力发现暴力至少是 \(O(mn^3)\) 的,这我做个集贸啊;
回头去看 T1,会了 T1 的 \(O(n^2)\) DP,优化未果之后去改 T2 了;
然后 T2 到最后都没改出来;
倒是在最后两分钟的时候想出来了 T1 可以单步容斥一下变成 \(O(nm)\),但是没时间打了。
总分 \(80+0+10+0=90\),T2 的珂朵莉树应该是锅了(
发现 T2 可以直接暴力跳父亲,因为每个点最多只会被遍历一次;
🤣👉🤡
T3 是旋转卡壳,是没听过的东西。
T4 确实是大数据结构。
下午改题。
听 5k 说数据好像又锅了?
数据确实锅了,T2 数据中出现了已经被删除的点。
改了之后多骗了十分。
看 HDK 改 T3 破防了,决定直接扔掉这题。
然后晚上发现 T4 改不动之后又重新开始写这题了(
9.24
上午模拟赛。
T1 不会。
猜测是单峰函数,然后发现不是单峰函数,于是直接敲了个随机化;
T2 不会。打暴力。
T3 不会。打暴力。
T4 不会。打暴力。
然后 \(45+0+0+0=45\),后三题暴力全锅了 🤡
\(\text{Huge}\) 中午发表了一番演讲,大意是说之后我们要上 whk,可能是 5+2(5 天 OI,2 天 whk)的形式;
并要求我们会教室拿早读资料,每天早上早读;
然后给了我们体育课。
不多评价。
改题。
然后一下午只改出来 T1,因为 T2 是带超级分讨的树形 DP,于是直接去打昨天 T3 的旋转卡壳,然后就卡壳了;
把 GGRun 摇过来调了调,发现有理数类的除法打锅了(
然后改了半天交上去之后
T 了。
不是哥们
下了个测试点跑了 5 秒;
然后发现我那个有理数类的 cmp
巨慢
一个 sort
跑了 5 秒
重构代码甚至只用了 0.5 h 😅
我是唐氏。
晚上回教室拿了下早读的东西,主要还是语文书。
其实我真觉的早读真的没啥效率站着还难受
晚上不想大力分讨,于是回去把 11:23 的 checker 重写了一遍,个人感觉写的还行。
9.25
上午模拟赛。
T1 最开始想用栈 + 哈希维护,然后发现这样做的是子串不是子序列;
然后换成 DP,打了会过了大样例,手造了两组数据之后捏出来一组错了的 hack;
大概就是
原题要把字符串 \(s\) 拆成两个子序列,令其中一个是串 \(a\) 不断重复 ,另一个是 \(b\) 不断重复,询问是否可行;
然后我出了一个
ccabbc
cb
ac
感觉可以被拆成 cb + cb + ac
,所以应该是 Yes
;
但由于要拆成两个子序列,所以答案是 No
。
然后硬控我自己 0.5h,发现改不出来以后直接慌了,觉的反正 DP 是错的就也没想咋优化 😶
T2 想着直接把删边转成删点做,然后每次向上跳的时候贪心取 \(\min(A\cdot(dep_x-dep_{lst}),B)\),就行了;
写完之后大样例没过,自己手搓了两组数据发现没问题啊,直接扔了;
赛后发现没问题的原因是因为思路完全就错了,每条边只能走一遍 \(\neq\) 每个点只能走一遍 😅
T3 概率期望,不会。
T4 只有一个测试点,相当于提交答案题。
但是不知道怎么做这个东西,考虑随机化骗点分;
发现这个东西挺赌的,询问次数越少得分越高,但次数越少越可能出错;
所有,或一无所有
然后因为没有输出询问次数错了 🤡
下午改题。
T1 要用 bitset
优化 DP,这样 \(O(\frac{|s||x||y|}{w})\) 就能过去了。
感觉再给我一个小时也想不到这;
不过记搜可以在有解的时候砍掉一半搜索树,跑的巨快,亏麻了。
好像有人 \(O(|s||x||y|)\) 卡过去了,啥意思,有的人代码生下来常数就小(
T2 树形 DP,ZROI 咋两天两道树形 DP
T3 题解:
假装存在 \(n+1,n+2,...,n+k\) 这 \(k\) 的点
不是出题人他怎么想到把 \(k\) 次方拆成 \(k\) 个点的 🙃
赛后好像被 oos 和 jijidawang 爆标了,\(O(nk^2) \to O(nk)\) 的纯数学解法;
(其实我感觉纯数学更好推一点)
T4 据说是 APIO (讲课)原题,不过也据说当时大家都在睡觉所以没人切。
9.26
上午没有模拟赛。改题。
把前几天不好改的几个题全改了,补了补之前的考试题。
推了一遍昨天 T3 的纯数学解法的式子,感觉还好,直到我发现我不会证第一步 😅
节点 \(x\) 在其子树大小为 \(i\) 时的方案数为 \(\dbinom{n-i-1}{x-2}\)
然后一上午就过去了。
下午看了看网络流,改了改之前的考试题。
然后一下午就过去了。
晚上看 int_R 更新闲话(我是巴甫洛夫的狗)
HDK:woc 咋人家写这么好
然后他也更了一篇(林史·树上的男爵 2 | 上)
int_R:怎么才能比过这种天赋型选兽
难蚌
然后一晚上就过去了,发现我一天啥都没干
smjb
9.27
上午模拟赛。
T1 看起来很简单,开场有若干人在打,但我不会,没打动,最后打了个 \(O(n^3)\) 暴力跑路;
T2 有异或,看着不太可做,跳了;
T3 推了推发现能直接 DP,遂直接打了 50Pts DP;
T4 数据结构,但是第二个包看到过一个类似的题,感觉可做。
不行这么写体现不出我场上的绝望
T1 啥题?看着好像挺水的,感觉也就绿及绿以下吧;
woc 样例三没过 咋数差这么多
思考一下
好了,这下不会了 😅
我 TM 签到题又没签上签到题又没签上签到题又没签上签到题又没签上签到题又没签上
不管,直接看 T2;
有异或,好高级;
哦哦我会爆搜,剩下的一点思路没有;
啥意思,前一天说直接 2h T1 2h T2 然后全盘拼暴力,一看咋 T1 T2 都不会 😅
看 T3;
欸 50Pts 我会,这不直接 DP 吗;
为啥数组是 \(200 \times 100 \times 100 \times 100 \times 2\) 的 😅 这也开不下啊
打搜。
看 T4;
第一个包好像是送的;
第二个包我之前好像做过一个类似的,直接维护 \(\min \max\) 的位置就行了吧;
这已经 55Pts 了好的啊;
(打完了)
不是我大样例呢;
这我调个集贸啊 😅
挂个拍吧。
回头看了眼 T3,发现第一维可以不用开;
哈哈我会 50Pts DP 啦;
一遍就打对了,感觉有点不可思议;
然后又挂了个拍。
看了看 T2,发现还是没思路。
于是又看回了 T1
这下成倒序开题了 😅
然后和 T1 死磕 1h 未果;
看着时间快到了补了补暴力,给 T1 加了个 clock
,把 T3 的暴力和 DP 拼在了一起。
然后一看成绩,T1 挂了,T3 挂了,T4 挂了,T2 因为就打了 10Pts 所以没的挂 😅
T1 的 clock
不知道为啥把能跑过的也给我跳出去了,然后就似掉了;
T3 DP 没挂搜打挂了,然后第一个点没过;
T4 发现自己读假题了,没有修改 \(\neq\) 所有操作均为增加
感觉这是这几天最简单的一场,也是我分最低的一场
这要真是 noip 我就奔着退役去了
😅😅😅😅😅😅😅😅😅😅😅😅😅😅😅😅😅😅😅😅😅😅
下午改题。
T1 有 \(O(n),O(n^2),O(n^2 \log n),O(n^2 \log^2(n))\) 等各种做法;
只能说是群英荟萃了
T2 要拆位考虑,维护每一个二进制位上的值;
你说得对,不过 \(O(2^n)\) 的做法拿了 80Pts ,十个点只有两个菊花 😅
T3 简单贪心题。T4 还好的线段树题。
感觉有望一天改完。
晚上的时候就剩一道 T2 了;
改,改了半天,输出 3
。发现 ans
初值应该是 0
不是 1
,改了。改了之后输出 0
。
不是哥们
调。
搞了一份 HDK 的代码,发现我俩打的区别挺大;
尝试输出了一下对应的值;
嘶......
好像没啥问题?
换个变量。
嘶......
为啥 tmp
突然变成 0
了?
我组合数不能又打锅了吧。
输出一下 \(C_5^3\)。
输出 : 0
😶
我真服了
怎么我每次打组合数都能输出点奇奇妙妙的锅
发现还是不对。
观察到
嗯,对,这是阶乘
发现有人 2 的次幂也能打锅
这题一共就这俩辅助计算的我打锅俩
然后就过了 😅
然后就不想改题了。把大家写的抽象东西都看了一遍。
包括但不限于
- HDK 林史·树上的男爵 2 | 中
- 大黄 大唐剩事
- Elaina_0 C T H
哦对,还有一个
然后 \(\text{晓飞谷}\) 跟我们说 CSP 可以查分了;
你说的对,但是不是下午两三点就能查了吗 🤔
S 组 85.5
话说这个是啥水平
突然观察到我这一天用了 30 个流汗黄豆。
9.28
上午模拟赛。
发现是牛客的题,同时发现下发的 PDF 上挂了牛客的链接,点进去还有题解看(
T1 推了推发现可以可反悔贪心,花了 0.5h 调过了看 T2。
T2 看着像贪心,然后想不到咋贪,感觉要么就是逆天转化要么就是超级大分讨,反正看了 1h 没看会,打了个 \(O(n^2)\) 的暴力拼上一个随机选点。
T3 大体思路是有的,但是没想到虚树,然后就理所当然地似了;
所以这题咋打暴力啊 🤔 赛时暴力锅了
T4 不会。感觉应该是 DP,但是不会;
然后想打表,打完暴力样例没过,然后意识到这题让求的是无标号无根树。不会。
总之就是,菜。
下午改题。
发现 T1 \(n,m \le 5000\),所以正解是 DP,我赛时想都没往 DP 上想 😅
不管了反正可反悔贪心跑得快
T2 就是分讨 + 贪心,不过我一做这种分讨题各种情况就会在我脑子里混成一团(
T3 在听到虚树两个字的时候瞬间就知道咋维护了 😥
T4 是超级大 DP,5k 说是 \(O(n^6 \log n)\) 的,这么高级。
改这题的议程还是先放一放吧。
于是晚上去打了 ABC。
总结:吃饱啦!
上来打完 AB,很快啊,C 数组开小了吃了发罚时;
然后看 D,发现这次的 D 并不是浪费时间题,于是直接开打;
然后不知道为啥觉的扫一遍能对就没打搜所以又吃了一发;
看 E。发现是二分答案。打完了交上去,RE 了,数组开小了;
byd 怎么个事 然后我扩了下数组又交了一发,T 了。
发现这是 \(O(n^2 \log n)\) 的 ,直接优化;
优化掉一个 \(n\) 之后直接交,WA 了?
看了一眼之前的提交记录,发现每个里面都有错的;
好好好原来是正确性有误 😅
反正就是一顿调,然后最后在 HDK 的帮助下调出来了。
5 发罚时,我是小丑,哈哈
赛后听 5k 说 FG 都挺水的;
给你二十分钟估计都能切了
🤡🤡🤡
咋这还长了六十多分
也是上青了 🥰
9.29
上午没有模拟赛。
改之前的考试题;
然后就了解了每道题当时没改的原因
于是去写了写之前比赛的总结
不过话说回来为啥我纯写题解写完一场也要将近 1h 🤔
下午改题。
想改之前网络流那题,然后一下午就一直在看网络流。
晚上 HDK 拉着我 vp CF DIV.2,然后切了 AB 之后突然听到cth窜天猴的声了;
\(\text{field}\) 跟我们说是运动会开幕式,说本来想给我们看烟花然后发现就放了个烟,然后带着我们 vp 了开幕式(
本来一切正常,然后看着看着 \(\text{field}\) 突然来了一句“你知道他们有国庆七天乐吗”给我们干沉默了
啥意思咋突然七天假了
哦好像有人举报了
不是这届高一这么强的吗这都能成
然后:
“你们明天不放假”
“他们 10.1 放假,你们待定”
😅
然后就没有 vp 的心情了。
剩下的时间就看 CTH 不过 A,HDK 不过 B 了
看他俩都过了就开始乱颓
9.30
其实本来想把这一天写在下一篇里的但是如果不放假那还是放这吧
上午模拟赛。
上来一套原题给我们干不会了,于是等了十分钟之后给我们拿上来一套新的;
那就打吧。
不过鉴于上一次换题的比赛难度爆炸,已经做好爆零的准备了(
T1 上来把五个 \(\sum\) 杵在我脸上;
设 \(med(a,b,c,d,e)\) 为 \(a,b,c,d,e\) 的中位数;
给定五个序列 \(A,B,C,D,E\),求 \(\sum_{i=1}^n \limits \sum_{j=1}^n \limits \sum_{k=1}^n \limits \sum_{l=1}^n \limits \sum_{m=1}^n \limits med(A_i,B_j,C_k,D_l,E_m) \bmod 998244353\)
于是花了十分钟大致读了遍题,发现最好还是先回来做 T1;
然后开打。打完之后小样例输出是答案的十倍。
发现算重了一堆情况,然后想不到什么简单方法,于是开始大力分讨;
反正......样例全过了。
但是大样例水的跟什么一样所以上了个拍;
所以为啥我现在每场 T1 时间都在 1h 往上 😅
T2 又读了一遍题,猜测有环就是 Yes
没环就是 No
,打了打把小样例过了,大样例挂了,发现没判自环;
于是写了个仔细想想就知道假的离谱的东西:
只要超过一个自环就是
Yes
你说的对,不过大样例过了,不用调了
T3 一眼博弈论,打搜,发现不会打搜。
丸辣!
硬着头皮推正解。发现只要 \(n\) 是奇数就是先手必赢,对着样例和手造数据打了个偶数情况,然后大样例全过了。
然后发现忘 sort
了。
不是那我咋把大样例全过了 😅
推。最后推出来的结论:只要 \(a_i\) 不是两两配对就是先手必赢
但这个结论看起来不太对……那不就是说随机情况下全是 Yes
吗
不管,看 T4。
T4 直接 BFS
了。
但是后面的分真的很多,但是我想不到优化方式了(
🤓👆欸!我有一计
首先我们发现,如果当前的数 \(u\) 小于 \(y\),那么大概率会往上加,反之则会往下减;
所以我们设一个平衡因子 \(\alpha\),如果 \(u < (1-\alpha)y\) 就只往上搜,如果 \(u>(1+\alpha)y\) 就只往下搜;
我的天哪,真是天才的想法
把这个唐氏东西打完以后就开始回顾代码,然后不出意外地发现了 T2 的那个“假得离谱的东西”,改了改过了;
然后开颓。
还剩 10 min 的时候又看了一遍代码,给 T2 跑了个这样的图:
答案是 Yes
啊,没……等会,Yes
?
不是我判环打锅啦?
我的判环
void dfs(int x,int st){
vis[x]=st;
for(int i=h[x];i;i=e[i].next){
int to=e[i].to;
if(to==x)continue;
if(vis[to]){//走到标记过的点 != 有环
cout<<"Yes";
exit(0);
}
dfs(to,st);
}
}
当时冷汗一下就下来了
然后以最快的速度敲了一个拓扑排序上去
等我把锅修完交上去的时候还剩 1 min
也算是极限了
赛后发现 T2 全输出 Yes
有 90,T3 全输出 Yes
也有 90;
不是 T2 也就算了,T3 有多测也能拿 90 啊?
难蚌。
不过鉴于发现原题之后十分钟就换上了新的,就当是 \(\text{晓飞谷}\) 亲手造的数据吧,这样就正常了。
下午 5k 大神直接加了一堆 hack 点拯救了数据过水的问题;
然后给我干成 rk2 了 🥰