2019年8月1日,进入杭二集训,目前集训模式是上午队测,下午讲评与订正,再加上李建老师讲课,晚上是自主学习。想把每天的测试作个记录。下面是day1的测试日志。
T1
题目大意
设函数 f ( n ) f(n) f(n)为n的次大因子,求 ∑ i = l l f ( i ) , 1 < = l < = r < = 1 0 18 \sum_{i=l}^lf(i),1<=l<=r<=10^{18} ∑i=llf(i),1<=l<=r<=1018
sol
T1我得了80分,第一档分直接用线筛筛每个数的最小质因子,就可以算出每个数的最大约数。第二档分可以预处理sqrt(r)
内的所有质数,然后用它们去埃筛[l,r]
内的每一个数,复杂度
Θ
(
n
l
o
g
l
n
g
(
n
)
)
\Theta(nloglng(n))
Θ(nloglng(n))。
第三档分我不会了,结果是用分块打表来做,把每
1
e
7
1e7
1e7个数的函数值之和用第二档分的办法处理出来,直接打在表上,每次询问时大段查表,小段用第二档分的办法做。还有一种做法是用我不会的 min_25筛
T2
题目大意
给定一棵 n n n个点, m m m条边的树,边有边权,选出一个点集 S S S,满足 u , v ∈ S , d i s ( u , v ) > = L u,v\in S,dis(u,v)>=L u,v∈S,dis(u,v)>=L,求 m a x ∣ S ∣ , n < = 5 ∗ 1 0 5 , L < = 1 0 9 max|S|,n<=5*10^5,L<=10^9 max∣S∣,n<=5∗105,L<=109。
sol
T2在测的时候我没有想到思路,爆0了。后来才知道是一个贪心题,我们把每个子树的答案和具体方案求出来,根的答案就是最终的答案。转移为将每个节点的点集和它自己合并到它的点集里,把每个点按到根的距离排序,每次取出离根最近的两个节点,比较它们的距离,如果小于 L L L就把离根最近的删去。用左偏树维护即可。
T3
题目大意
给定一个数列
a
1
,
a
2
,
.
.
.
a
n
a_1,a_2,...a_n
a1,a2,...an,求有多少
b
b
b个数列
b
1
,
b
2
,
.
.
.
,
b
2
n
b_1,b_2,...,b_{2n}
b1,b2,...,b2n,满足
b
i
+
n
∣
a
i
,
b
i
∣
b
i
+
n
,
1
<
=
i
<
=
n
∏
i
=
1
n
b
i
2
>
=
∏
i
=
n
n
b
i
+
n
b_{i+n}|a_i,b_i|b_{i+n},1<=i<=n\\ \prod_{i=1}^nb_i^2>=\prod_{i=n}^{n}b_{i+n}\\
bi+n∣ai,bi∣bi+n,1<=i<=ni=1∏nbi2>=i=n∏nbi+n
sol
还不会~,等会了再来补吧