CSP-S 2022 游寄+缇解
游寄
怎样更多流水账?
摘要只是因为考前等车在《百年孤独》,所以找点东西魔怔(草
Day -1
纯纯文化课生,文化课了一个月。
呃呃,周五周六有羟基补课。
家长说周五上语英,逃跑计划策划完毕。
寄。怎么变成英数了,原来下周才是语英。(实际:下周文化课生期中考,压根不上课)
于是我们很勇的跟班主任(英语老师)提少上一堂课(意指不上洋文)
班主任(过了一会):同学们!我们交涉成功了!上完英语课我们就可以去G房,不用上数学。
悲
在G房补一周前模拟赛矩阵乘法写了八百年写不出来个写(伏笔)
Day 1
又在补题时被线段树折磨。
上午随机写了点板子,拉出一张要补的板子的单子,发现完全不可能在2h里写完!于是就摆烂了,挑了几个写写。
然后到处寻找纸巾,没找到。最后不得不从筛特那里劫走五张餐巾纸
然后去打水,看错了开水温水的标志,然后就面不改色地将手伸到开水下面。
再去吃饭,结果吃的太早了,在校门口坐了半个小时然而在看《百年孤独》没有复习。
然后坐车去考试。旁边的高一小鹏友一直在大声聊一些我初二就知道的一些锣鼓的事(可见我水怪属性),最后居然睡着了,不知道怎么做到的。
然后就到了,还是有点困,然后就进场了。
两个保安查1.4k人的健康码行程码核酸检测证明,HNU你咋回事啊!上午不是考过J组了吗。
然后密码大小写给错了,楽。发现又和去年一样不选中就显示不出中文,输入法还贼阴间。
开T1:不会,一开始还没看见不同,非常危险的行为!不知道出于什么执着没有遵循先看完所有题再写的原则,然后想了半天写了个最高O(n^4)的暴力拼盘。。不知道为啥过不去大洋李,1h过去了就开T2去了。
开T2:看了样例解释,然后就一眼。。然后码了半天,大洋李过不去发现少写了俩情况,改了之后就行了。1h过去了。。
回去看T1,自闭了半天面向大洋李数据编程,发现bfs写成dfs了。。。改掉就行了。。然后还是不会正解,自闭了半天。。其实知道肯定是枚举b,c或者a,d这样的很对称的。
开T3:什么阅读理解。阅读理解了半天写了个set,写完后,惊奇的发现能60。又1h过去了。。
开T4:k=1直接写,然后误以为k=2/3都是全在链上的,没细想直接写了随机数据的情况。。好像是因为当时打字太快中间死机了几秒,,吓人的很。。然后测大洋李发现过不去,破防了,然后就和k=1拼盘然后保存文件跑路了。。
出考场发现应该是能过k=2的随机数据,然后因为不知道这里有多少分,所以就变成了薛定谔的考场估分,其实应该是70+100+60+48=278
Update 20221107: 好的,我又是准确估分怪。
企图邀请同学去吃饭,他们说要回去出XJ版数据。然后就去勤园三楼食堂吃饭了,两个人吃了珍珠小笼包馄饨炒粉干炒萝卜丝炒白菜芒果西米露黄桃双皮奶(报菜名)
然后准备了一晚上语文分享。
(与伏笔相照应)考完看到有什么人在提矩乘,恍然大悟,T4是矩乘。。
Day 2
纯纯文化课人。
午休被家长拦在小卖部强制做出选择。。
打算停课了,因为大家都停了。。文化课进度和别人不同也不好办。。(摊手)
Day 3
停课了,到各种版本数据去测。。都水到了更多分。。暴力选手。。
听说一神仙退役了,对原因感到很迷惑。。
tyh真的相信了我们说csp摆烂即可的说法,保留实力不写正解写暴力,瑟瑟发抖
补题的时候叕觉得自己考场降智。。不知道为啥这两天写啥都挂,可能rp守恒,也可能文化课了一个月变傻了……
没有主语的意识流到此结束(快成日记了
哦,缺一个标志性结尾。NOIP加油!
缇解
-
[CSP-S 2022] 假期计划(民间数据) 1-A-B-C-D-1 考虑枚举(B, C)。\(O(n^2)\) 解决k次联通的问题,\(O(n^2)\) 预处理出对于点i作为B/C时最优的A(D),最后枚举(B,c)又是\(O(n^2)\)
-
[CSP-S 2022] 策略游戏(民间数据) 6个ST表的签到。。
-
[CSP-S 2022] 星战(民间数据)
发现入边是容易维护的。维护入边条数和入边起点的异或和(或直接记录入边起点和),查询是否=每个点都做一遍起点的哈希值。 -
- k=1直接树上路径,k=2树上路径那条链拉下来dp,可过随机数据。
- 发现可以倍增+矩阵乘法优化。矩乘不是传统的,\(c=a*b\) 是 \(c_{i,j}=min(a_{i,k}+b_{k,j})\),注意单位元是对角线全0其他inf而不是对角矩阵。。这个矩阵运算有结合律
- 考虑k=3,发现中途经过的点一定在任意主链上的点i(权值为\(a_i\))和连接主链点 \(i\) 的权值最小点(权值为\(b_i\))中。考虑怎么dp。
- \((i-3)\to(i-2)\to(i-1)\to i\) 设 \(f_{i,0/1}\) 表示到达了链上第i个点的本身/其旁支。 写出状态转移方程。考虑矩乘,发现是 \(5\times 5\) 的,很寄!可以卡空间卡到能过,但让人很不舒服。
- 要减少矩阵的大小。发现旁支是个很别扭的设定,也不好实现。考虑直接把这个设定改成类似于邻接点的设定。 \(f_{i,j}\) 表示到达距离链上第 \(i\) 个点 \(j\) 的点的最小花费,这些点之间其实是等价的(?从贡献的角度而言)。那么有
\[\begin{cases} f_{i,0}=\min(f_{i-1,0}+a_i, f_{i-1,1}+a_i, f_{i-1,2}+a_{i})\\ f_{i,1}=\min(f_{i-1,0}, f_{i-1,1}+b_i)\\ f_{i,2}=f_{i-1,1} \end{cases} \]