---
# System prepended metadata

title: 第六周训练总结

---

# 比赛总结
## 牛客多校第五场 3/4/10
> AC：C、D、G
> 补题：H
### 总结：
本场比赛我们三个人开题是4，3，3分配的，然后有谁发现签到题，就会找另外一个说一下思路，然后开始敲代码。
首先发现 G 题就和之前做过的一道题很相似，直接遍历加上尺取法就可以了，ska 很快就敲完代码，然后交上去就直接 ac 了。然后就发现 D 题就是一个简单的数学题，直接模拟即可，但是发现如果全部遍历就会 TLE，这时 cs 提出因为是因子，就可以直接遍历 $\sqrt{n}$ 就足够了，这样大小两个因子都能遍历到了，然后再稍微处理一下边界处就可以了，cs 很快便将代码敲出来了，然后一边敲，一边调整，最后测试通过后，就交上去，然后 ac 了。最后做的是 C 题，ska 已经读过题了，就给我们讲了一下题目大意，cs 发现了这道题目中的条件 因为会总共出现 $\frac{n(n-1)}{2}$ 条边，再加上有好多通过这道题目的，我们就开始大胆的猜测加上模拟结论了，最后我们发现答案要么是 $n-1$ 要么是 $n$，但是第一次我们的条件整错了，只考虑在行中出现全 0 行就是 $n-1$，没有考虑列的情况，导致 wa 了一发，然后又再想了想，发现条件应该是只要出现全 0 行或者全 0 列，答案都是 $n-1$，修改之后交上去就 ac 了。最后我们 3 个就开始攻关 H 题，这就是一个典型的 dp 题目，还是因为我们 3 个对于 dp 的熟悉不够，不能很好的定义相应的状态，然后找出相应的状态转移方程，导致我们就一直没有将这道题目做出来。

通过这场比赛，我们 3 个觉得我们还是要坚持上周的想法，需要多加练习 dp，一定要将 dp 的短板给补上。
### 题解：
+ C：只要检查是否出现全 0 行或者全 0 列即可
+ D：直接模拟即可，但是注意小因子和大因子是成对出现的，直接在遍历小因子的时候同时处理大因子即可。
+ G: 遍历加尺取即可。
+ H：dp。首先需要预处理出i-j能取得的最大奶酪重量，然后dp进行转移。
## 牛客多校第六场 2/4/12
> AC：E G 
> 补题：B C
### 总结
开题依然是444，各自读题。之后发现G题过的比较多。ska和wyf开始想G，cs继续看别的题。G题思路出的比较快，很快就码完代码，但是少考虑了c是0的情况，wa了。修改后又wa，因为忽略了题目里面两个数不相等的情况，再次修改后才通过。之后三个人一起想E题。cs最先出的思路，之后ska也出了思路，此时cs码完代码提交后通过。然后三个人一起想C题。因为之前对数学题做的不多，这次题目想的比较偏，刚开始想找规律，然后手动列了几个之后发现规律并不取。然后就开始打表，打完表之后发现部分规律，也对之前的一些假设进行了否认。最终也没能解决。
### 题解
+ G：只能出现gcd的倍数，判断c是不是gcd倍数和0即可。
+ E：利用前缀和，然后判断给定区间 $[l，r]$ 的 $sum[l-1]$ 与 $sum[r]$ 是不是同奇或者同偶，且这段区间内的前缀和的奇数个数或者偶数个数是否大于等于 $k$ 即可。
+ C：首先将双阶乘转化为单阶乘。奇数情况下最后的双阶乘同理单阶乘求0的个数方法进行求解5的幂次。题目转化为单阶乘的5因子的个数。发现是等差数列求和，计算出公式配合求出。
+ B：枚举+数学，需要用到一个组合数定理，我们仨都不会
## 杭电多校第五场 2/4/12
> AC：1007、1012
> 补题：1001、1006
### 总结
这场多校比上次好一些没有很坐牢，但是还是出现了一些意想不到，以及特别无语的失误。
开题阶段，我们还是 4/4/4 这样读题的，首先我们发现了第 7 题和第 12 题是可以写的，然后就 cs 开始仔细思考第 7 题的解法，wyf 和 ska 开始讨论第 12 题，很快 cs 想到了第 7 题的解题思路，开始写代码，但是写着写着发现有一些数学处理没有掌握，便让 ska 开始写第 12 题的代码，根据模板很快就写完了，然后交上去 wa 了，因为思路是比较正确的，应该就是一些细节部分没有处理好，所以 ska 和 wyf 就开始一起检查调试，最终发现是数组开的不够大，导致 wa，改过之后就 ac 了，然后两道题有相通之处，期间 cs 给 wyf 也讲了第 7 题的思路，仔细推敲之后发现没有什么 bug，然后就继续开始码第 7 题，很顺利的码完了，但是在测试的时候，发现还是有一些小错误，在线性同余的处理那里不是很合适，然后 wyf 思考之后给出了另外一种写线性同余的方式，然后再测试样例，发现样例的小数可以通过，大数那里就会出错，检查代码之后发现是在求和取余那里不能用 +=，这样会出现错误，修改之后，就交上去了，但是遗憾的是 TLE 了，然后我们就开始计算复杂度，感觉有可能是常数的问题，于是 wyf 看过之后提出，要不要先进行一下预处理，修改后交上去就 ac 了。然后我们就开始看其他题目了，在处理第 7 题期间，ska 精读了第 1 题，就由他给我们讲了第 1 题的题意，cs 首先想到了解题思路，于是开始码代码，ska 和 wyf 就开始看了第 6 题，对于第一题，思路就是直接暴力求解，很快 cs 就将代码写完了，测试样例发现结果完全正确，然后就交了上去，结果发现 wa 了，然后因为思路比较简单，就是纯暴力，我们三个都不理解为什么会出错，想着要是错应该也是 TLE，于是三个人开始一起调这个代码，我们甚至都开始检查我们的模板函数了，手推了一次也没发现什么错误，我们还是不理解，最终我们 3 个人都困在了这道题上，也没时间再好好想想第 6 题了，导致这场比赛成了极大失误，其实第 6 题如果好好想想，我们还是能够写出来的。
比赛结束之后我们发现其实我们的第 1 题思路确实是没有什么错的，就是完全暴力，但是在处理细节的时候所用的模板不是很好，在计算点到线段的距离的时候，我们的模板在其中用到了海伦公式，但是海伦公式中用到了两层 sqrt 函数，这样的操作就会导致精度的丢失，结束后修改为利用向量的算法，交上去就过了，其实在比赛的时候，wyf 也提出了精度的问题，但是因为 3 个人都不是很擅长处理这样的问题，就没有深入思考，去换一种思路求三角形的高，就导致调了好久，冲了好久都没能 ac。

通过这场比赛我们发现，我们 3 个人不能同时困在一道题上面，即使需要调试代码，我们也得保证至少得有一个在想其他的题目，否则就会很容易让可以通过的题目最后也没时间仔细想。

### 题解
+ 1001：直接暴力求解，但是在算的时候一定要注意精度问题，海伦公式会用到两次 sqrt，这样会导致精度丢失，需要改用向量求解，积累到模板上！！！
+ 1012：直接暴力枚举就行，要加一个break防T
+ 1007：是一个数学题，直接暴力计算概率，然后利用线性同余计算结果即可。
+ 1006：简单DP，比赛时候一直在调1001，这题没咋看，赛后没看题解直接写就过了
## 杭电多校第六场 1/2/11
> AC：1001
> 补题：1006
### 总结
这场多校非常无力和坐牢。开题443分别读题，找签到题。
开始阶段，榜上第一题过的比较快。cs和ska就开始想第一题，wyf去看别的题。第一题思路出的比较快，cs开始码代码，但是因为缺少相等特判wa了一发。找到特判的条件后因为快速幂没有取模的原因又wa了一发。改ksm的时候直接上手改的，ska一时糊涂把指数也给取模了，然后又wa了一发。wyf对别的题目也没有想出来思路就也来degub，发现是快速幂取模的问题，修改后A了。此时榜上第十题过的比较多，我们就开始想第十题，首先我们下意识认为题目给的就是一个环，然后开始推整圈下来的公式，但是发现剩下需要遍历的部分时间复杂度也不允许，而且余下的部分也推不出log或者O(1)的处理方法。耗费了大量时间也没有找到合适的解决方法。后来ska发现题目中给的数据也可能是互不连通的多个环，也可能是链接环，于是我们果断放弃了这个题。榜上第六题的AC数已经接近了第十题，于是我们转战第六题。第六题感觉是暴力枚举，但是复杂度不允许，于是我们往dp的方向上去思考了，最后没能解决。后来确定思路就是暴力枚举，但是没有想到降低复杂度的预处理方法，最后就只A了一个题。
### 题解
+ 1001：就是分开讨论n等于k和不等于k的两种情况，排列组合一下，利用ksm求解。
+ 1006：直接暴力枚举每一个数改变 $[-300, 300]$ 对答案的贡献，补这个题耗费了2天多，枚举贡献的逻辑实在不太好懂...
# 课程总结
本周讲了基础图论和数学进阶的内容。基础图论之前基本都学习过基础知识，课程基本能够跟上，但是代码之前图论练习的不多，还没有进行对应的题目练习。数学部分难度比较大，之前同样没有做过相应的题目，还需要时间来理解和练习。
图论进阶方面李国鸿同学讲的很好很清楚，一些算法ska去年学过做过相关题目，但是有些新的图论算法没了解过，而且难度较大，可能需要时间理解做题
# 自由学习情况
## 石珂安
学习了图论，整理了以前遗漏的匈牙利算法，还有就是补题，这周难度较大，补题花费了比较长的时间，另外这周没有cf，补了之前cf的一些题目，针对特殊题目写了题解，可以在博客中看到
[![pPAV3qI.png](https://s1.ax1x.com/2023/08/05/pPAV3qI.png)](https://imgse.com/i/pPAV3qI)
[![pPAVGZt.png](https://s1.ax1x.com/2023/08/05/pPAVGZt.png)](https://imgse.com/i/pPAVGZt)
[![pPAV1sA.png](https://s1.ax1x.com/2023/08/05/pPAV1sA.png)](https://imgse.com/i/pPAV1sA)
[![pPAVlMd.png](https://s1.ax1x.com/2023/08/05/pPAVlMd.png)](https://imgse.com/i/pPAVlMd)
## 王永峰
主要是复习字符串相关内容，哈希，kmp和字典树和AC自动机。对张博凯讲解的字符串知识内容进行理解和巩固。整理AC自动机，fail树相关的内容。
[![pPAiFWd.png](https://s1.ax1x.com/2023/08/05/pPAiFWd.png)](https://imgse.com/i/pPAiFWd)
## 陈市
主要是进行了dp的学习和数论相关知识的学习与了解，我们对于数学方面的问题还是不够敏感，不能很好的想到解题思路。
[![pPAiHnP.png](https://s1.ax1x.com/2023/08/05/pPAiHnP.png)](https://imgse.com/i/pPAiHnP)
# 团队模板等材料整理情况
总结AC自动机及用途模板。
一些字符串的模板、数论、图论等等
所有的模板、材料都在 [github仓库](https://github.com/marti844/AcmCode)，commit记录都可以看到
# 整体总结
## 本周学习情况
本周多校题目感觉比之前难许多，大部分时间还是在学习一些东西。补题的难度也比之前大。周二和周四晚上两个队讲的题大部分明白了。
## 下周学习目标
上难度的题目，需要绕几个弯的题目就很难做出来，下周计划多参加cf提升一下思维的锻炼；例如很多枚举的题目，知道是枚举，但是不非常暴力的，总是想不出来很巧妙的方法，需要大量做题提高这方面的思维能力
总体来说现在的方向比较明确，每个人先把基础补好，然后学一学自己所负责的方向，应该接下来一段时间都是这个目标。