牛客周赛143-质因数分解/差分/状压DP+轮廓线+并查集/动态规划+线段树+坐标压缩

541 字
3 分钟
牛客周赛143-质因数分解/差分/状压DP+轮廓线+并查集/动态规划+线段树+坐标压缩

牛客周赛143-EF未补#

https://ac.nowcoder.com/acm/contest/134529#question

A-模拟

题意比较乱,实际上,直接输出1,n即可

模拟
x = int(input())
print(1,x)
B-counter

map后计数并加上是0的即可

counter
from collections import Counter
n, m, x = map(int, input().split())
a = list(map(int, input().split()))
cnt = Counter(a)
ans = 0
for v in cnt.values():
if v <= x:
ans += 1
ans += (m - len(cnt))
print(ans)
C-质因数分解

题意:

给你x和y求x*y所有正因子的d**d和

题解:

分别分解x和y,合并质因数指数,利用合并后的质因数生成所有因子,求和即可

质因数分解
MOD = 10 ** 9 + 7
def fc(num):
factors = {}
d = 2
while d * d <= num:
if num % d == 0:
cnt = 0
while num % d == 0:
num //= d
cnt += 1
factors[d] = factors.get(d, 0) + cnt
d += 1 if d == 2 else 2
if num > 1:
factors[num] = factors.get(num, 0) + 1
return factors
def get_factors(factors):
res = [1]
for p, e in factors.items():
new = []
for f in res:
mul = 1
for _ in range(e + 1):
new.append(f * mul)
mul *= p
res = new
return res
x, y = map(int, input().split())
fac_x = fc(x)
fac_y = fc(y)
for p, e in fac_y.items():
fac_x[p] = fac_x.get(p, 0) + e
c = get_factors(fac_x)
ans = 0
for d in c:
ans = (ans + pow(d, d, MOD)) % MOD
print(ans)
D-差分

题意:

有一些区间,选择一个长度为K的区间,使得与这个区间相交的给定区间的数量最多

题解:

对于给定区间 [li,ri][l_i, r_i][L,L+k][L, L+k] 相交,等价于:

[li,ri][L,L+k][l_i, r_i] \cap [L, L+k] \neq \varnothing

即:

LriL+kliL \le r_i \quad \text{且} \quad L+k \ge l_i

即:

L[lik,ri]L \in [l_i - k, r_i]

因此,区间 [li,ri][l_i, r_i] 能与 [L,L+k][L, L+k] 相交的 LL 的范围是 [lik,ri][l_i - k, r_i]

每个给定区间对应一个 LL 的可选区间 [lik,ri][l_i - k, r_i]。我们要求一个点 LL 被最多的这样的区间覆盖。

转换为一维区间最大重叠问题:给定若干区间 [lik,ri][l_i - k, r_i],求一个点被覆盖的最大次数。

差分
n, k = map(int, input().split())
g = []
for _ in range(n):
l, r = map(int, input().split())
g.append((l - k, 1))
g.append((r + 1, -1))
g.sort()
cur = 0
ans = 0
for _, d in g:
cur += d
ans = max(ans, cur)
print(ans)
E:状压DP+轮廓线+并查集
F:动态规划+线段树+坐标压缩
牛客周赛143-质因数分解/差分/状压DP+轮廓线+并查集/动态规划+线段树+坐标压缩
http://blog.7a7a68.xyz/posts/牛客周赛143-ef未补/
作者
Waning
发布于
2026-05-10
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
Waning
愿你明日如绚丽之花.
公告
还活着.
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
56
分类
8
标签
20
总字数
125,693
运行时长
0
最后活动
0 天前

目录