最近几场的div2 E都是一个思路啊,代码大差不差的,感觉随便ak啊。
A. Prefix and Suffix Array
题意 给你前
n
−
1
n-1
n−1个字符串前缀和后
n
−
1
n-1
n−1个字符串后缀,判断原字符串是否是回文串
思路 相同长度的判断是否是对称的即可。
代码
B
C. Scoring Subsequences
题意 数组的得分为所有数的乘积除以长度的阶乘,给你一个不下降子序列,问你
1
−
i
1 - i
1−i的前缀的子序列的最大得分的最长长度是多少,每个前缀输出一个整数,
n
<
=
2
e
5
n <= 2e5
n<=2e5。
思路 我们可以发现答案一定是单调不递减的,考虑长度不变,向右平移一格,答案一定不会比当前更小,然后我们考虑长度增加1是否会让答案变小。由于我们选取的子序列一定是后缀,所以我们考虑从后面选数然后判断他是否比数组长度大,即乘上的数是否大于1即可。
代码
D. Counting Factorizations
题意 给你一个大小为
2
∗
n
2 * n
2∗n的数组,问你能凑出的质因子分解数组的方案数。质因子分解数组当且仅当为选了n个质数,且互不相同,从小到大排序,加上
n
n
n个指数凑出的数组。
思路 我们排序,统计每个数字的出现次数,然后做一次01背包+统计方案即可。
代码
E. Labeling the Tree with Distances
题意 给你一个大小为
n
n
n的树, 给你
n
−
1
n-1
n−1个标签,给
n
n
n个点上标签,每个点只能标签一次,然后满足存在一个点,他到周围点的距离是这些点的标签,
n
<
=
2
e
5
n <= 2e5
n<=2e5。
思路 和前几场的div2思路简直大差不差,就是考虑换根,考虑如何判断合法,我们发现少了一个标签,我们可以自行加一些数,这些数都是合法的,然后放到map里哈希,然后我们考虑对标签的数的个数哈希,然后就变成了一个哈希,然后就随便做了。
代码