目录

2020/08/08——2020/08/14周报

团队训练

2020.8.8 2020牛客暑假多校训练营(第九场) prob:6/6/12 rank:68/974

2020.8.10 2020牛客暑假多校训练营(第十场) prob:2/2/10 rank:194/904

林星涵

专题

本周无

比赛

2020.8.9 Atcoder Beginner Contest 047 prob:2/3/6 rank:415

题目

本周无

陶吟翔

专题

本周无

比赛

本周无

题目

郭衍培

专题

本周无

比赛

2020.8.9 Atcoder Beginner Contest 047 prob:2/3/6 rank:466

题目

本周无

本周推荐

林星涵:Atcoder Grand Contest 047 - B

题目大意:给出 $n$ 个字符串 $S_i$,给出一种操作方式,即每次第一个和第二个选一个删除,问有多少串能够转换成另外一个串,统计对数。

数据范围:

$ 2 \le n \le 2e5$

$ S_i \ne S_j$

$ |S_1+S_2\ldots+S_n| \le 1e6$

ps: 串全由小写字母组成

解题思路:经过分析之后,我们可以发现一些性质,即长串一定由短串组成,且从短串的第二位开始必然是连续的一段,利用这个性质,我们对串从短到长排序之后,每次对字母做一个桶,在trie树上寻找是否有统计过的点并累加答案,之后倒序插入一个trie树中(只插入到第二位,每次对第一位的个数进行统计)。

推荐理由:利用操作的性质,借助trie树较为巧妙的解决了问题。

陶吟翔:

题目大意:给出一棵$n$个点的树,边有边权,每次可以把一条路径上的边权减一,问最少多少次可以把所有边权减成零,另外有$q$个询问,每次修改一条边的边权,对每个询问也要回答

数据范围:$1 \le n,q \le 10^5$,$1 \le w_i \le 10^9$

解题思路:对于每一个点单独考虑连向子树的边,我们假设$a$是连向子树的边中最大的,$t$是这个点连向父亲的边,显然我们可以把$t$个删除和连向父亲的边一起做,剩下的就必须在子树内解决,所以我们根据经典的电池问题,检查$2 \times a$和$t + sum$的大小然后计算这一个点对答案的贡献。对于修改,显然只会影响两个点的答案,我们再单独处理这两个点即可

推荐理由:从题目本身到答案本质的计算需要一定的模型转化能力,并且处理答案时的细节处理也比较复杂,全面地考察了做题者的能力

郭衍培:

题目大意:给定n个数,求$\sum_{1\le i<j\le n}(a_i\times a_j\%200003)$

数据范围:$1\le n\le 200000$

解题思路:2是200003的原根。将$a_i$转成$2^k_i$,满足$2^k\equiv a_i \pmod {200003},k\le 200001$。用fft计算多项式f(x)的平方,其中f(x)的i次项系数为$2^i$的个数。再遍历统计一遍即可。

推荐理由:原根用的比较少,这道题提醒原根的重要性。