7.29 day6数学

战绩

100+100+100+25=325

(数学不行实锤了,好多人AK

T1

线性筛里,每个数都会被他最小的质因数筛到,令

\(f(x)=[x\%p==0] \quad p \in dangerous\)

这显然是个完全积性函数,线性筛即可

时间复杂度:\(O(n)\)

T2

考虑这棵树实质上是一个以1为根,边权为大于父亲边权的质数,节点值则为到根路径上边权累乘

那么我们要求x,y之间路径实质上是\(dep[x]+dep[y]-dep[lca]*2+1\)

lca则是x,y相同最多的最小质因数

比如 111 555
111 = 3 * 37
555 = 3 * 5 * 37

LCA(111,555)=3

每个数最小质因数显然也可以线性筛直接求

时间复杂度:\(O(n\log n)\)

T3

考虑直接枚举\(\frac{y+x}{y-x}\)的值

\(c1=y+x\quad c2=y-x\)

\[y=\frac{c1+c2}{2}\quad x=\frac{c1-c2}{2} \]

值最大到2n-1

这样我们去枚举分子分母是\(O(V_{ans})\)的,但是\(max_{ans}=2e8+\)

考虑刚刚柿子在\(\frac{y+x}{y-x}\)是奇数还是偶数时的贡献

发现奇数时每个枚举的分数都可以,而偶数只有一半能计入贡献

所以我们就很简单了

	for(int i=2;i<=2*n-1;i++){
		if(i&1)ans+=2*n/(i+1);
		else ans+=((2*n)/(i+1))/2;
	}

时间复杂度:O(n)

T4

很简单,赛时想复杂了

考虑i个数要想lcm是x,那么他们一定都是x的约数

这是必要不充分的,因为有可能没有覆盖到x的所有质因子,所以lcm是x的一个因数,所以我们考虑容斥

用全部的可能数量即\(d_x^k\)减去因数的答案

\[f_i=d_i^k-\sum_{j|i}f_j \]

时间复杂度\(O(n\log n)\)

扩展题:

\(n\le 5000\quad m\le 1e9\)

求:

\[f_i=\sum_{j=0}^{m}j^i \]

简述思路,待补:二项式定理找出递推式

posted @ 2023-07-29 09:57  Linnyx  阅读(17)  评论(1编辑  收藏  举报