连着四周周赛没写,打了一场结果不是很好,但是题目多多少少还是思路正确的只是确实代码能力不太够。
334场周赛
这周没打,第三题双指针,需要考虑的一点是right指针得从中间开始计算,因为最多就len/2对。
第四题和之前一个并查集题思路基本一样,不过这里的两种方法一种因为约束条件不同得用dij来求。另一种方法就还是朴素的二分+bfs。
335场周赛
打了场虚拟赛,这周的题目还是挺难的,一二题还好,第三题就变成了困难题,虽然这个困难有点水。第三题的思路一眼看上去很简单,分解每个质因数,只要切割点左边和右边没有同一个质因数出现就可以是正确答案。但是用集合来统计是否有交集会很麻烦,而且慢。所以正确的考虑方法是先统计所有的质因子,并保存每个数的质因子。再从左往右统计一次,如果当前集合里的每个数都刚好等于全集合里的数,那么说明这个点以前的所有质因子都已经出现过了。
第四也很简单,模板多重背包,数据也很水不用优化也能过。当然由于求得是方法数和,所以可以进行优化。
99场双周赛
一二题简单题,第三题是排序+维护区间,首先将数组按照左右逆序的方式排序。这样方便统计是否有交集。然后根据排序后的答案将所有相交集合合并。统计不相交集合数n。答案就是2^n%MOD。
第四题换根DP,这题让我当场想肯定想不到,但是一看题解感觉又几乎是模板题…
336场周赛
这场打了,估计是前面几场难度比较高,突然来了场手速…完全跟不上。第三题用到一个新的概念叫前缀异或和,这个还蛮有意思的,和之前的前缀和一个概念。大概是满足某些相同的数学规律,所以也可以照搬着用吧,然后用一下之前每日一题的对前缀和相同数进行计数就可以了。
第四题写法比较多,我看了个最暴力的就是直接模拟区间,然后对区间进行更新统计…大概是数据规模太小了,正经的来写可能还是要用线段树吧。
.png?table=block&id=e721439b-67f8-4fde-8e9a-291fca4d6796&cache=v2)
