2021 多校 杭电 第十场

时间:2021-08-19
本文章向大家介绍2021 多校 杭电 第十场,主要包括2021 多校 杭电 第十场使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

好像这场完多校就结束了,然而好颓废,题一场都没补

比赛记录

我做 A,第一问很好解决,枚举 \(k\),再定义只在字典序最小的方案处统计答案,枚举方案中 \(k\) 出现的位置,再乘个组合系数就行。

这时候 bzy 说 D tle了,有高论,准备等等看

第二问,一开始进行了错误的转化,看到榜上没一血,找zzs帮忙dp一个计数问题,但这个其实没用,zzs忙着切 C,再看已经有一血了,就自己慢慢做了。然后发现对于一类合法方案,根据对称性,剩下位置填数对 \(1\cdots k\) 的贡献应该是一样的,所以只要在第一问中加个 \(\frac{tmp_i}i \times n\) 就好,发现 \(p\) 不一定是质数,改利用乘的系数除掉 \(i\) 即可,中间因为 \(n=1\) 和少乘系数导致 WA 了两发

然后 zzs C tle,丢给 bzy,去写 H

我看到 C,感觉可以 bitset 就去写,然后 bzy 说他在写,我就去看 D 了。中间突然感兴趣回来看 zzs 之前 TLE 的代码,哦是 bitset 啊,那没我事了,然后看到群里 bzy:“发现是n^4/w的,T 了”,zzs:“你都不看看我之前为啥 T 了吗”。 然后我自己血了一个试图加个 O3 卡过去,本地 0.8s 他跑不出来,好奇哪个人之前说评测机挺快的,然后看那个枚举 for j 1..i 和dp拆分数的思想一样,这个只用前一半和 \(i\),就可以常数 除以 2,加上O3,就过了

期间 zzs 过了 H,然后 我搞 D,zzs 搞 F,bzy 搞 G

bzy:“G找到一篇tarjan老爷子的论文”,然后就失踪了

我写了半天 D 假的枚举 \(\frac{n}{i}\) 的段,希望在 \(2^{16}\) 中不多,然后跑出来按时间估计比暴力还慢,发现自己是个 sb,冷静分析一下就知道段很多

期间 zzs 发了点 F 的转化我还没细想,就提出和 zzs 换着看下题

去看 F,式子着实吓人,感觉一下子承受不了,那边 zzs 还开始写 D 了,就想偷偷下班了。水了下群,看了看高中那边比赛情况,zzs就说他假了。。。然后我回来继续搞 D

期间想了记忆化,但是看 zzs 说的复杂度太优秀了,就没管,现在回来写,差不多就是直接记录 \(F(k,n)\),转移就是 \(F(k,n) = F(k-1,n) - F(k-1,\frac{n}{p_k})\),在加一个把 \(n\) 降成 \(n\bmod \prod_{i=1}^k p_i\),再分别用数组记录 \(n\le M\) 的答案 和 map 记录 \(> M\) 的,然后跑十几s,然后想到可能记录 大于 \(M\) 的答案没用,去掉 map 发现速度起飞,提交,改掉 MLE 就过了

实在不想想 F,去读了下 J 没发现满足单调性的地方,咕咕了

之后 bzy G RE了,在群里发自己调不动了,我以为只是 RE,想随手拿 gdb 看看咋回事然后发现他样例都没过,,,就提前下班了

原文地址:https://www.cnblogs.com/flukehn/p/15163028.html